如何获得exists
的{{1}}规则中找到的值?
Validator
我不想向数据库发出第二个请求,它已经由验证器完成。
$validator = Validator::make($request->all(), [
'invite' => 'required|max:30|exists:invites,code',
]);
答案 0 :(得分:1)
没有办法做到这一点。 exists
语句返回一个布尔值。这是exists
规则的作用。
在这里,您可以做的最好的事情是从验证程序中删除exists
规则,并在验证通过后,查询邀请。如果它返回null
,则手动处理abort()
。
$validator = Validator::make($request->all(), [
'invite' => 'required|max:30',
]);
if ($validator->fails()) {
return redirect('some/route')
->withErrors($validator)
->withInput();
}
// now check for existance
else if (! $invite = Invite::where('code', $request->code)->first()) {
return abort(404, 'Invitation not found');
}
$invite->someMethod();