Правила Laravel Валидация двух переменных - PullRequest
0 голосов
/ 08 сентября 2018

Я хочу проверить, является ли пользователь (участник) частью группы с помощью Правил проверки. Это часть моей функции ...

public function update(Request $request)
{
    $request->validate([
        'idgroup' => [
                'required', 'numeric', new AdminGroupRequest
            ],
        'member' => [
                'required', 'numeric', new UserPartOfGroup
            ],
        ]);

И это класс правил, в котором я хочу проверить, является ли пользователь частью группы.

    public function passes($attribute, $value)
{
    $userofgroup = Member::where([['groupid', /*Here I need idgroup*/], ['member', $value/*This is already member*/]])->select('id')->first();
    if($userofgroup){
        return true;
    }else{
        return false;
    }
}

Есть идеи?

1 Ответ

0 голосов
/ 08 сентября 2018

Вы можете использовать request () helpers:

public function passes($attribute, $value)
{
    return Member::where('groupid', request('idgroup'))
        ->where('member', $value)
        ->exists();
}

Или вы можете просто использовать крышку внутри вашего FormRequest:

'member' => [
    'required', 'numeric', function ($attribute, $value, $fail) {
        $exists =  Member::where('groupid', $this->input('idgroup'))
            ->where('member', $value)
            ->exists();

        if (!$exists) {
            return $fail('Your error message goes here.');
        }
    }
],
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...