Laravel规则验证两个变量

时间:2018-09-08 08:43:24

标签: laravel validation rules

我想通过验证规则来验证用户(成员)是否属于组。 这是我功能的一部分...

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 :(得分:1)

您可以使用request()助手:

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

或者您也可以在FormRequest内使用closure

'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.');
        }
    }
],