Yii2 - 在场景中设置安全属性
Yii2 - Set safe attributes on scenarios
当我使用场景(在我的示例 'update' 场景中)时,如何保护我的属性以进行大量分配?
这是我的规则:
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() 检查我的控制器中的安全属性时,我只获得了函数场景的 'update' 场景所需的必需属性().
当然,$model->load(Yii::$app->request->post()) 函数不会检索其他属性。
我怎样才能保证它们安全?
即使我想添加一些其他规则,我也找不到方法!
加载模型前设置场景:
$model->setScenario('update');
$model->load(Yii::$app->request->post())
场景中需要全部添加
$scenarios['update'] = ['user_id', 'type', 'name', 'country_id', 'address', 'name', 'status'];
当我使用场景(在我的示例 'update' 场景中)时,如何保护我的属性以进行大量分配?
这是我的规则:
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() 检查我的控制器中的安全属性时,我只获得了函数场景的 'update' 场景所需的必需属性().
当然,$model->load(Yii::$app->request->post()) 函数不会检索其他属性。
我怎样才能保证它们安全? 即使我想添加一些其他规则,我也找不到方法!
加载模型前设置场景:
$model->setScenario('update');
$model->load(Yii::$app->request->post())
场景中需要全部添加
$scenarios['update'] = ['user_id', 'type', 'name', 'country_id', 'address', 'name', 'status'];