3


我正在尝试使用 Yii 在我的项目中实现“另存为草稿”功能。我有一个带有 2 个按钮的表单:- 提交和保存。单击提交按钮后,在验证所有字段(包括必填字段)后,表单数据将保存到数据库中。它工作完美。单击保存按钮时,我需要将没有默认验证的表单数据保存到数据库中。如何在控制器操作中实现这种禁用验证?
所有的建议都是可以接受的。。
谢谢

4

2 回答 2

13

一起关闭验证规则很容易:

$model->save(false);

这不会进行任何验证,只会尝试保存您的模型(在数据库端可能仍会失败)。

但是如果你想运行一些验证,你可能想在这里查看场景。它们允许您根据初始化模型的场景指定一组不同的规则。这样,您只能打开/关闭整套验证规则。

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

$model = new Thingy('draft');
$model->save(); //Applies all default & "draft" validation rules
于 2013-01-07T08:52:49.813 回答
1

您的问题在控制器中说,但据我所知,在控制器中我们有过滤器,例如检查权限。这可以被覆盖,如本指南的本节所述。如果您的意思是在模型中完成的验证,那么您可以使用场景(通过将规则绑定到场景来绕过验证,而在其他场景中不进行验证)。检查这个讨论类似问题的线程

如果我误解了您的问题,请在此处发表评论,以便我相应地更新答案!

于 2013-01-07T08:53:47.183 回答