douhe4336 2016-02-24 18:15
浏览 179
已采纳

yii2更新验证规则

I have a model and validation rules for it:

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

Actually the code produces no validators. When I remove 'on' section, everything goes well.

Digging in official documentation and search thru The Web didn't help me to understand what is the issue, and why can't I have custom required fields sets for different actions.

  • 写回答

1条回答 默认 最新

  • dongzhong3688 2016-02-24 18:49
    关注

    The Scenario is not automaticaly setted by Yii2 ActiveReccoed. If you need a specific scenario you must create it and assign

    E.g. for update ...

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

    Also you can set scenario in your actionUpdate

    public function actionUpdate($id)
    {
       $model = $this->findModel($id);
       $model->scenario = 'update';
      ........
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多
  • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题