【问题标题】:yii2 validation rules on updateyii2 更新验证规则
【发布时间】:2016-02-24 18:15:25
【问题描述】:

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

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

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

挖掘官方文档并通过网络搜索并没有帮助我了解问题所在,以及为什么我不能为不同的操作设置自定义的必填字段。

【问题讨论】:

    标签: php validation model yii2


    【解决方案1】:

    场景不是由 Yii2 ActiveReccoed 自动设置的。如果你需要一个特定的场景,你必须创建它并分配

    例如更新...

    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';
      ........
    }
    

    【讨论】:

    • 谢谢,它工作正常。很遗憾,文档对我来说有点不直观。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-05
    • 1970-01-01
    • 2017-08-08
    • 1970-01-01
    相关资源
    最近更新 更多