Не могу понять как работают валидаторы в YII, вот мне приходит пост запрос в контроллер:
public function actionAddnewserver()
{
if (Yii::$app->request->isAjax) {
$data = Yii::$app->request->post();
$server = new Server();
$server->insertNewServer($data);
}
}
Перед вставкой в БД я например хочу проверить $data['url']
на валидность. В этом контроллере имеется вот такой метод:
/**
* @return array the validation rules.
*/
public function rules()
{
return [
// Проверяет, что "website" является корректным URL. Добавляет http:// к атрибуту "website".
// если у него нет URI схемы
['website', 'url', 'defaultScheme' => 'http', 'message' => 'ошибка'],
];
}
Это все что я смог найти из документации. Как я должен понять корректен ли URL
или нет? С YII работаю впервые. Ну логически я должен передать эту строку в какой нибудь булевый метод который вернул бы мне true
или false
а тут как вообще не понимаю.
Тебе нужно задать атрибут модели Server и вызвать функцию validate(), которая вернет true, если валидация прошла.
public function actionAddnewserver()
{
if (Yii::$app->request->isAjax) {
$data = Yii::$app->request->post();
$server = new Server();
$server->website = $data['website'];
if($server->validate()){
$server->insertNewServer($data);
}else{
$errors = $server->errors;
}
}
}
Примерно так. Более подробно смотри тут Правила валидации
Виртуальный выделенный сервер (VDS) становится отличным выбором
Подскажите пожалуйста, в приведенном коде, запрос к БД выполняется один раз а потом просто фильтруются данные или 2 запроса?
Как передать значения отмеченных checkbox в url в виде get параметра? В итоге хочу получить примерно такой url: wwwtest
В документации написано, создаем приложение, берем файл и шлем его POST`ом в яндекс и все окПробуем отправить, получаем ошибку 401, "Неавторизованный...