Yii2 валідація

15

Від автора: вітаю вас, друзі. Ми продовжуємо цикл статей, присвячених знайомству з фреймворком Yii2. Дана стаття буде логічним продовженням попередньої, де ми працювали з формами. Тут же ми розглянемо поняття Yii2 валідація, іншими словами, ми дізнаємося, для чого необхідна валідація форм в Yii і як оголосити правила валідації форм.

Власне, відповідь на питання про необхідність правил валідації має бути зрозумілий вже з попередньої статті, в якій ми створили найпростішу форму. Як ми побачили, без правил валідації дані форми просто так не завантажуються в модель, що працює з формою. Це перша причина використовувати валідацію форм. Друга причина не менш очевидна: ми так чи інакше виробляємо різні валідацію. Так навіщо нам щось писати, якщо фреймворк пропонує нам великий вибір валідаторів, якими ми і скористаємося.

Тут ми познайомимося лише з деякими з валідаторів. З повним ж списку ви можете познайомитися у документації до фреймворку Yii2. Отже, правила валідації полів форми ми повинні описувати в методі rules() моделі форми. Даний метод повинен повертати масив, в якому до властивостей моделі (полям форми) застосовані ті чи інші валідатори. Давайте використаємо перший валідатор, яким користуються частіше інших — це валідатор required. Як випливає з назви, валідатор перевіряє, заповнене поле. Якщо поле виявиться порожнім — валідатор поверне помилку валідації.

class TestForm extends Model
{
public $name;
public $email;
public function rules()
{
return [
[[‘name’, ’email’], ‘required’],
];
}
}

Yii2 валідація

Давайте тепер спробуємо повернутися до форми на сторінці, помістити курсор в поля форми, і після прибрати курсор, не заповнюючи поле.

Yii2 валідація

Чудово, чи не так? Валідація працює і працює навіть на клієнті, що дуже зручно. Якщо у нас є поле для введення email, давайте використаємо ще один валідатор, який так і називається — email. Даний валідатор перевіряє рядок на відповідність формату адреси email.

public function rules()
{
return [
[[‘name’, ’email’], ‘required’],
[’email’, ’email’],
];
}

Yii2 валідація

Як бачимо, нове правило валідації допомогло перевірити валідність email. Перевіримо тепер, спрацює завантаження даних з форми в модель, відправивши тестові дані. Нагадаю, код дії, що приймає дані, буде поки що приблизно таким:

public function actionPage()
{
$form_model = new TestForm();
if($form_model->load(\Yii::$app->request->post())){
var_dump($form_model);
}
return $this->render(‘page’, compact(‘form_model’));
}

Yii2 валідація

Як бачимо, дані пройшли валідацію і були успішно завантажені в модель форми, відповідні властивості моделі отримали значення і ми можемо працювати з отриманими даними. Але це вже тема наступних статей.

Більше про фреймворку ви можете дізнатися з наших безкоштовних або платних уроків. Також створення найпростішого блогу на Yii2 можна подивитися в цьому циклі уроків.