unknown scenarios:default
描述:有个mobile字段,想只修改这个字段的时候验证为必填,创建的时候不是必填项
这个时候肯定要用到场景了
public function scenarios()
{
return [
'editmobile' => ['mobile'],
];
}
修改rules
public function rules()
{
return [
[['company', 'email'], 'string', 'max' => 60],
[['company', 'city'], 'required'],
[['mobile'], 'required',"on"=>["editmobile"]],
];
}
使用editmobile场景
$model = Info::find()->where(['t_id'=> $id])->one();
$model->setScenario('editmobile'); //or $model->scenario = 'editmobile';
$model->load(Yii::$app->request->post());
if($model->save){
//todo
}
起作用了
但是使用create的时候,保存却出了问题,提示unknown scenarios:default
后来找文章,是因为设置场景的时候,直接把父类的场景覆盖了。所以应该这样写scenarios
public function scenarios()
{
$scenarios = parent::scenarios();
$scenarios['editmobile'] = ['mobile'];
return $scenarios;
}
这样就ok了。
参考文章:https://segmentfault.com/q/1010000004616794
关键字:scenarios, yii2
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!