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'];