在Yii验证

时间:2014-03-28 10:46:48

标签: yii

是否可以为EditCreate页面共享一个验证规则?

例如,在创建相册时,您必须提供名称并选择图像(该相册的封面)。然后一个表单被序列化。假设表单看起来像,

<form>

   <input type="text" name="name"/> 

   <br />

   <input type="file" name="cover" /> 

</form>

再次:字段name不能为空,应在cover

中选择图片

但是Edit页呢? 此名称是必须的,但cover不是(因为用户可能会将其留空以覆盖现有的封面)!

这可以在Yii中默认完成吗?

3 个答案:

答案 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