Laravel Validate Against Auth :: user () -> id; - PullRequest
0 голосов
/ 09 января 2019

Я пытаюсь избежать парадокса администратора удалить свою роль администратора и получил эту ошибку

Undefined variable: request

Undefined variable: thisUser

переменная определена вне функции проверки,

ниже приведен весь код проверки, есть ли способ сделать это с помощью встроенной проверки?

public function edit(Request $request)
{

$thisUser = Auth::user();

$validatedData = $request->validate([
        'id' => 'required',
        'name' => 'required|alpha_num',
        'email' => 'required|E-Mail',
        'is_admin' => [
            'required', 
            'boolean', 
            function($attribute, $value, $fail) {
                if($thisUser->id == $request->input('id')) {
                    return $fail('Can not remove admin privilege of yourself');
                }
            }
        ]
    ]);

    ... 
    }

1 Ответ

0 голосов
/ 09 января 2019

Закрытие не будет иметь доступа к переменным, определенным вне его области видимости.

$validatedData = $request->validate([
    'id' => 'required',
    'name' => 'required|alpha_num',
    'email' => 'required|E-Mail',
    'is_admin' => [
        'required', 
        'boolean', 
        function($attribute, $value, $fail) use($thisUser, $request) {
            if($thisUser->id == $request->input('id')) {
                return $fail('Can not remove admin privilege of yourself');
            }
        }
    ]
]);

Это должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...