yii2更新验证规则

时间:2016-02-24 18:15:25

标签: php validation model yii2

我有一个模型和验证规则:

class User extends ActiveRecord implements IdentityInterface
{
 ...
public function rules()
{
    return [
        [['username', 'password', 'email'], 'required', 'on' => 'insert'],
        [['password', 'email'], 'required', 'on' => 'update'],
    ]
}

实际上代码不会生成验证器。当我删除'on'部分时,一切顺利。

深入了解官方文档并通过网络搜索无法帮助我理解问题是什么,为什么我不能为不同的操作设置自定义必填字段集。

1 个答案:

答案 0 :(得分:4)

场景不是由Yii2 ActiveReccoed自动设置的。如果您需要特定方案,则必须创建并分配

E.g。更新...

public function scenarios()
{
    $scenarios = parent::scenarios();
    $scenarios['update'] = ['password', 'email'];//Scenario Values Only Accepted
    return $scenarios;
}

您也可以在actionUpdate中设置方案

public function actionUpdate($id)
{
   $model = $this->findModel($id);
   $model->scenario = 'update';
  ........
}