【发布时间】:2013-01-07 07:17:18
【问题描述】:
我正在尝试使用 Yii 在我的项目中实现“另存为草稿”功能。我有一个带有 2 个按钮的表单:- 提交和保存。单击提交按钮后,在验证所有字段(包括必填字段)后,表单数据将保存到数据库中。它工作完美。单击保存按钮时,我需要将没有默认验证的表单数据保存到数据库中。如何在控制器操作中实现这种禁用验证?
所有建议都是可以接受的..
谢谢
【问题讨论】:
标签: yii yii-events
我正在尝试使用 Yii 在我的项目中实现“另存为草稿”功能。我有一个带有 2 个按钮的表单:- 提交和保存。单击提交按钮后,在验证所有字段(包括必填字段)后,表单数据将保存到数据库中。它工作完美。单击保存按钮时,我需要将没有默认验证的表单数据保存到数据库中。如何在控制器操作中实现这种禁用验证?
所有建议都是可以接受的..
谢谢
【问题讨论】:
标签: yii yii-events
同时关闭验证规则很容易:
$model->save(false);
这不会进行任何验证,只会尝试保存您的模型(在数据库端可能仍然会失败)。
但如果你想运行 一些 验证,你可能需要查看Scenarios here。它们允许您根据初始化模型的场景指定一组不同的规则。这样你就只能打开/关闭整套验证规则。
$model = new Thingy();
$model->save(); // All default validation rules
$model = new Thingy('draft');
$model->save(); //Applies all default & "draft" validation rules
【讨论】:
您的问题在控制器中说,但据我所知,在控制器中我们有过滤器,例如检查权限。可以按照指南的this section 中的说明覆盖它。如果您的意思是在模型中完成的验证,那么您可以使用场景(通过将规则绑定到场景来绕过验证,而在其他场景中不进行验证)。 检查this thread 讨论类似问题
如果我误解了您的问题,请在此处发表评论,以便我相应地更新答案!
【讨论】: