Yii 2.0:如何针对不同场景为相同属性设置不同规则

时间:2014-10-14 06:33:02

标签: php yii2

我需要验证 yii 2.0 中的文件字段。我的文件字段规则' name'看起来像这样。

[['name'], 'file', 'skipOnEmpty'=>FALSE, 'extensions'=>'jpg, jpeg, gif, png', 'maxSize'=>'1024']

我有两个场景插入和更新。对于插入,我需要'skipOnEmpty'=>FALSE,对于更新,我需要'skipOnEmpty'=>TRUE

如何在Yii 2.0中实现这一目标?

1 个答案:

答案 0 :(得分:2)

只需使用所需方案制作2条验证规则:

[['name'], 'file', 'skipOnEmpty'=>FALSE, 'extensions'=>'jpg, jpeg, gif, png', 'maxSize'=>'1024', 'on'=>'insert']
[['name'], 'file', 'skipOnEmpty'=>TRUE, 'extensions'=>'jpg, jpeg, gif, png', 'maxSize'=>'1024', 'on'=>'update']

并在初始化模型时在控制器中设置所需的方案:

$model = new Product;
$model->scenario = 'update';

官方文件: http://www.yiiframework.com/doc-2.0/guide-structure-models.html