当我使用场景时(在我的示例'更新'场景中)如何保护我的属性以进行大量作业?
这是我的规则:
public function rules()
{
return [
[['user_id', 'type', 'name', 'status'], 'required'],
[['country_id', 'address', 'name', 'status'], 'safe', 'on' => 'update'],
];
}
public function scenarios()
{
$scenarios = parent::scenarios();
$scenarios['update'] = ['user_id', 'type', 'name'];
return $scenarios;
}
当我使用$ model-> safeAttributes()检查控制器中的安全属性时,我只获得了更新所需的属性&#39 ;功能场景()场景。
当然,$ model->加载(Yii :: $ app-> request-> post())函数不会检索其他属性。
我怎样才能安全? 即使我想添加一些其他规则,我也找不到方法!
答案 0 :(得分:0)
在加载模型之前设置方案:
$model->setScenario('update');
$model->load(Yii::$app->request->post())
答案 1 :(得分:0)
您需要在场景中添加所有内容
$scenarios['update'] = ['user_id', 'type', 'name', 'country_id', 'address', 'name', 'status'];