@Aricus

Почему не работает кастомное правило activeForm?

Есть форма с полем (там есть и другие поля, но к теме не относится):
<?=$form->field($model,'date', ['enableAjaxValidation' => true, 'enableClientValidation' => false])->input('date');?>

и есть тестовое кастомное правило, которое, по идее, должно всегда выдавать ошибку.
public function rules()
    {
        return [
            ['date', 'date', 'format' => 'php:Y-m-d'],
            ['date', 'checkDate'],
        ];
    }

    public function checkDate($attribute, $param) {
        $this->addError('date', 'Значение: '.$this->$attribute);
    }

При изменении поля ajax отрабатывает, в нём появляются ошибки других полей, но не появляется ошибка поля date.
В чём может быть проблема?
  • Вопрос задан
  • 53 просмотра
Решения вопроса 1
slo_nik
@slo_nik Куратор тега Yii
В действии контролера добавьте
if (Yii::$app->request->isAjax && $model->load(Yii::$app->request->post())) {
            Yii::$app->response->format = Response::FORMAT_JSON;
            return ActiveForm::validate($model);
        }

Хотя для ajax валидаци лучше делать отдельное действие, даже отдельный контролер.
Вот тут показано, что к чему.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы