首页 > 解决方案 > Yii2 根据用户角色分配模型规则

问题描述

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

我怎样才能做到这一点?任何帮助将不胜感激

标签: modelyii2yii2-advanced-app

解决方案


尝试条件验证

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

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


推荐阅读