Как написать правило валидации для одного пользователя со статусом?

Для написания правила валидации в Laravel для одного пользователя со статусом, можно использовать механизм правил валидации, предоставляемый фреймворком.

В Laravel правила валидации определяются внутри метода rules() в классе, отвечающем за валидацию данных (например, валидатора формы). Для определения правила валидации для одного пользователя со статусом, необходимо добавить условие в правило.

Ниже приведен пример, демонстрирующий, как написать правило валидации для одного пользователя со статусом "active":

use IlluminateValidationRule;

// ...

public function rules()
{
    $userId = $this->route('user'); // получаем ID пользователя из маршрута
    
    return [
        'name' => 'required',
        'email' => [
            'required',
            'email',
            Rule::unique('users')->ignore($userId),
        ],
        'status' => [
            'required',
            Rule::in(['active']),
        ],
    ];
}

В этом примере мы используем функцию Rule::unique('users')->ignore($userId) для определения уникальности значения email в таблице users, игнорируя текущего пользователя.

Для проверки статуса пользователя мы используем правило Rule::in(['active']), которое ограничивает допустимые значения поля status только значением "active".

Таким образом, при использовании этого правила валидации, данные формы будут проходить валидацию, только если поле name заполнено, поле email уникально среди пользователей, игнорируя текущего пользователя, и поле status содержит значение "active".

Не забудьте добавить use-операторы для классов IlluminateValidationRule в начале вашего файла, чтобы использовать их в правилах валидации.

Это только один из вариантов написания правила валидации для одного пользователя со статусом в Laravel. В зависимости от требований вашего проекта, вы можете использовать другие правила валидации и условия для достижения нужной функциональности.