Не могу понять как работают валидаторы в 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;
}
}
}
Примерно так. Более подробно смотри тут Правила валидации
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости