Yii2根据用户角色分配模型规则

时间:2020-09-17 05:54:52

标签: model yii2 yii2-advanced-app

我有一个可供多个用户使用的模型。每个用户都有一个角色。以下是我的model rule

public function rules()
{
    return [
        [['sim_id', 'meter_id','imei_id'], 'required'],
        [['sim_id', 'meter_id', 'installed_by', 'updated_by','is_latest'], 'integer'],
       id']]
    ];
}

在上面,我仅在角色为imei_id => required时才需要2。可以删除用户角色Yii::$app->user->identity->user_role

我该怎么做? 任何帮助将不胜感激

1 个答案:

答案 0 :(得分:4)

尝试conditional validation

public function rules()
{
    return [
        [['sim_id', 'meter_id'], 'required'],
        [['imei_id'], 'required', 'when' => function () {
            return Yii::$app->user->identity->user_role === 2;
        }],
    ];
}

请记住,它在客户端(仅在服务器端)不起作用。