Laravel规则验证两个变量

问题描述 投票:0回答:1

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

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;
    }
}

有任何想法吗?

laravel validation rules
1个回答
1
投票

你可以使用request()助手:

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

或者你可以在你的closure中使用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.');
        }
    }
],
© www.soinside.com 2019 - 2024. All rights reserved.