Tags

, ,

Kadang-kadang kita perlu untuk menvalidasi nilai suatu variable yang tidak terikat dengan model apapun. Untuk itu kita dapat langsung menggunakan validator yang disediakan Yii. Contoh:

$email = 'test@example.com';
$validator = new \yii\validators\EmailValidator();

if ($validator->validate($email, $error)) {
    echo 'Email is valid.';
} else {
    echo $error;
}

// contoh yang lain
$input = 'string panjang';
$validator = new \yiivalidators\StringValidator([
    'max' => 10
]);

if ($validator->validate($input, $error)) {
    echo 'Input is valid.';
} else {
    echo $error;
}


Untuk menvalidasi beberapa nilai sekaligus, kita bisa memanfaatkan class yii\base\DynamicModel.

use yii\base\DynamicModel;

...

public function actionSendEmail()
{
    $input = [
        'subject' => 'Judul',
        'email' => 'test@example.com',
        'body' => 'Isi...',
    ];

    $model = DynamicModel::validateData($input, [
        [['name', 'email', 'body'], 'required'],
        [['name', 'email'], 'string', 'max' => 64],
        ['email', 'email'],
    ]);

    if ($model->hasErrors()) {
        // validation fails
    } else {
        // validation succeeds
    }
}
Advertisements