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

Yii2 assign model rules as per user role

我有一个可供多个用户访问的模型。每个用户都有一个角色。下面是我的 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

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

尝试conditional validation

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

请记住它不会在客户端工作(仅在服务器端)。