是否可以为Edit
和Create
页面共享一个验证规则?
例如,在创建相册时,您必须提供名称并选择图像(该相册的封面)。然后一个表单被序列化。假设表单看起来像,
<form>
<input type="text" name="name"/>
<br />
<input type="file" name="cover" />
</form>
再次:字段name
不能为空,应在cover
但是Edit
页呢?
此名称是必须的,但cover
不是(因为用户可能会将其留空以覆盖现有的封面)!
这可以在Yii中默认完成吗?
答案 0 :(得分:2)
如果您想要对编辑和插入进行不同的验证,可以在模型rules
中设置如下
array('name', 'required', 'on'=>'create'),
参考:http://www.yiiframework.com/wiki/266/understanding-scenarios
答案 1 :(得分:0)
您需要编写带有创建场景的规则,仅用于名称:
array('name', 'required', 'on'=>'create'),
如果您的其他字段(性别,国家/地区)与任何方案无关,那么它们也将应用于“创建”方案。
array('gender', 'required'),
在创建操作时使用$ model-&gt; setScenario('create')。
答案 2 :(得分:0)
您可以为规则指定多个方案:
阵列($属性,$验证,&#39;上&#39; = GT;&#39;更新,插入&#39)
http://www.yiiframework.com/wiki/266/understanding-scenarios