Laravel 规则验证两个变量
Laravel Rules Validation two Variables
我想通过验证规则验证用户(成员)是否属于群组。
这是我职能的一部分...
public function update(Request $request)
{
$request->validate([
'idgroup' => [
'required', 'numeric', new AdminGroupRequest
],
'member' => [
'required', 'numeric', new UserPartOfGroup
],
]);
这是规则 Class,我想在其中检查用户是否属于组。
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;
}
}
有什么想法吗?
您可以使用 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.');
}
}
],
我想通过验证规则验证用户(成员)是否属于群组。 这是我职能的一部分...
public function update(Request $request)
{
$request->validate([
'idgroup' => [
'required', 'numeric', new AdminGroupRequest
],
'member' => [
'required', 'numeric', new UserPartOfGroup
],
]);
这是规则 Class,我想在其中检查用户是否属于组。
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;
}
}
有什么想法吗?
您可以使用 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.');
}
}
],