Moeez
Moeez

Reputation: 478

Yii2 assign model rules as per user role

I have a model that is accessible to more than one user. Each user has a role. Below is my 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']]
    ];
}

In above I want the imei_id => required only when the role is 2. User role can be taken out Yii::$app->user->identity->user_role

How can I do this? Any help would be highly appreciated

Upvotes: 0

Views: 155

Answers (1)

Bizley
Bizley

Reputation: 18021

Try conditional validation

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

Just remember it won't work on the client side (only server side).

Upvotes: 4

Related Questions