最近用YII2场景的时候发现用到的地方功能是好的,但是和其他地方冲突了
报错如下:unknown scenarios:default
model文件下书写规则
/*
* 定义执行的场景
* zhaoyinfan
* 2016-06-16
*/
public function scenarios()
{
$scenarios = parent::scenarios();//本行必填,不写的话就会报如上错误
$scenarios['se_1'] = ['user_id'];
$scenarios['se_2'] = ['user_name'];
return $scenarios;
}
/**
* @inheritdoc
*/
public function rules()
{
return [
[['user_id‘], 'required','on'=>['se_1']],
[['user_name'], 'required','on'=>['se_2']],
];
}
controler方法处理
public function actionCreate() {
$model_1= Info::find()->where('t_id'=>$id])->one();
$model_1->setScenario('se_1');
}
public function actionUpdate() {
$model_2= Info::find()->where('t_id'=>$id])->one();
$model_2->setScenario('se_2');
}
如上所示就没有问题了