Задать вопрос
@dev400

Можно ли подключить таким способом валидатор?

Требуется собственный валидатор для телефона, и делать его напрямую в модели регистрации не комильфо, тк валидировать нужно еще и при редактировании данных пользователя, восстановлении пароля и тд. Сделал автономный валидатор, следуя документации
<?php
namespace app\components\validators;

use yii\validators\Validator;

class PhoneValidator extends Validator
{
    public function validateAttribute($model, $attribute)
    {

        $model->$attribute = str_replace(['+7', '(', ')' , ' '], '', $model->$attribute);

    }
}


Но про его подключение не нашел информации. Как им теперь пользоваться? Вот так?
['phone', 'app\components\validators\PhoneValidator']
  • Вопрос задан
  • 158 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 2
R0dger
@R0dger
Laravel/Yii/2 AngularJs PHP RESTful API
В Yii2 есть такая вещь как filters
ну как вариант! его и пользуйте!
stackoverflow.com/questions/28168253/custom-valida...
Ответ написан
qonand
@qonand
Software Engineer
Подключить свой валидтор можно так:
public function rules()
{
    return [
        [
            'phone',
            'app\components\validators\PhoneValidator'
        ]
    ];
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Логика валидатора - проверять данные на соответствие. А если надо их заменить, то надо использовать просто метод beforeValidate() или beforeSave()
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы