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

问题描述

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

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

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

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

解决方法

尝试conditional validation

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

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