Отключить проверку в Yii


Я пытаюсь реализовать функцию "Сохранить как черновик" в моем проекте с использованием Yii. У меня есть форма с 2 кнопками:- Отправить и Сохранить. При нажатии кнопки "Отправить" после проверки всех полей, включая обязательные поля, данные формы сохраняются в базе данных. Работает отлично. При нажатии кнопки Сохранить мне нужно сохранить данные формы без проверок по умолчанию в базе данных. Как я могу реализовать это отключение проверки в действии контроллера?
Все советы приемлемы..
Спасибо

2 ответа

Решение

Отключить все правила валидации легко:

$model->save(false);

Это не будет выполнять какую-либо проверку и просто попытается сохранить вашу модель (может все еще потерпеть неудачу на стороне базы данных).

Но если вы хотите выполнить некоторую проверку, вы можете посмотреть здесьСценарии. Они позволяют вам задать другой набор правил в зависимости от того, с каким сценарием вы инициализируете модель. Таким образом, вы можете включать / выключать только целые наборы правил проверки.

$model = new Thingy();
$model->save(); // All default validation rules

$model = new Thingy('draft');
$model->save(); //Applies all default & "draft" validation rules

Ваш вопрос говорит в Контроллере, но, насколько я знаю, в контроллере у нас есть фильтры, которые, например, проверяют разрешения. Это может быть отменено, как объяснено в этом разделе руководства. Если вы имели в виду проверку, выполняемую в модели, то вы можете использовать сценарии (обходить проверку путем привязки правил к сценарию и без проверки в других сценариях). Проверьте эту тему, где обсуждаются подобные проблемы

Если я неправильно понял ваш вопрос, пожалуйста, прокомментируйте здесь, чтобы я соответствующим образом обновил ответ!

Другие вопросы по тегам