Почему не валидируются данные формы?

Имеется форма

<?=$form->field($model, '_author')->label('Имя')?>
<?=$form->field($model, '_email')->label('Email')?>
<?=$form->field($model, '_comment')->label('Комментарий')->textArea(['rows' => 3])?>
    <div class="form-group">
        <div class="col-lg-offset-0 col-lg-1">
            <?= Html::submitButton('Update', ['class' => 'btn btn-primary']) ?>
        </div>
    </div>
<?php ActiveForm::end() ?>

И обработчик

public function editComment($id)
{
    $comment = Comments::findOne($id);
    $comment->author = $this->_author;
    $comment->comment = $this->_comment;
    $comment->email = $this->_email;
    return $comment->save();
}

Правила валидации

public function rules()
{
    return [
        [['_author', '_comment', '_email'], 'required'],
        [['_author', '_comment'], 'string'],
        ['_email', 'email']
    ];
}

При обновлении данных с валидированием обновление не происходит. Метод $model->validate() возвращает falseхотя данные валидны. Приходиться использовать $comment->save(false). Никак не могу понять, в чем может быть проблема?
  • Вопрос задан
  • 125 просмотров
Пригласить эксперта
Ответы на вопрос 2
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Что бы увидеть ошибки валидации, достаточно вывести
после $comment->save()
print_r($comment->errors);
Зачем гадать на кофейной гуще?
Ответ написан
Комментировать
slo_nik
@slo_nik Куратор тега Yii
Добрый день.
Откройте любой контролер, который сгенерирован crud и посмотрите, как там реализовано обновление записи.

// тут получаете модель из метода findModel()
$model = $this->findModel($id);
if ($model->load(Yii::$app->request->post()) && $model->save()) {
   // перенаправление куда Вам надо
}
Ответ написан
Ваш ответ на вопрос

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

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