yii2 场景运用

来源:互联网 发布:软件测试工程师题库 编辑:程序博客网 时间:2024/05/23 23:16

首先,在模型里加场景

 public function rules()    {        return [            [[  'approver','handlerName'], 'integer'],            [['amount', 'approveAmount', 'useAmount'], 'number'],            [['handlerDate', 'approveDate'], 'safe'],            [['annualBudgetCode'], 'string', 'max' => 100],            [['years'], 'string', 'max' => 4],            [['purpose', 'remark'], 'string', 'max' => 400],            [['type'], 'string', 'max' => 1],            [['status'], 'string', 'max' => 2],            [['amount', 'years', 'type', 'handlerName', 'departmentID', 'feeID', 'purpose'], 'required', 'on' => ['create']],//场景关键词 on  ,场景名与方法无关。            [['approveAmount', 'annualBudgetCode'], 'required', 'on' => ['update']],            [['amount', 'years', 'type', 'handlerName'], 'required', 'on' => ['up']],        ];    }
其次,在控制器方法里添加场景名

 public function actionCreate()    {        $model = new AnnualBudget();        $model->scenario = 'create';//对应模型里的场景名!不是此时的方法名!        .....    }


针对yii2中文社区的场景法,尝试过没实现(我自己应该配错什么了)。可以参考下http://www.yiichina.com/tutorial/89