如何做到这一点,这个函数会在表格中寻找一行而不是给定名称 John ,而是通过输入 'name' ?
public function validation($request)
{
return $this->validate($request, [
'name' => 'required|max:255',
'last_name' => 'required|max:255',
'code' => ['required',Rule::exists('users')->where(function ($query) {
$query->where('name', '=', 'John');
}), ],
]);
}
答案 0 :(得分:1)
检查你的参数并改变约翰'要求 - >名称
public function validation(Request $request){
return $this->validate($request, [
'name' => 'required|max:255',
'last_name' => 'required|max:255',
'code' => [
'required',
Rule::exists('users')
->where('name', $request->name)
],
]);
}

答案 1 :(得分:0)
您必须使用use
关键字并将$request
对象传递到此内容
public function validation($request)
{
return $this->validate($request, [
'name' => 'required|max:255',
'last_name' => 'required|max:255',
'code' => ['required',Rule::exists('users')->where(function ($query) use ($request) {
$query->where('name', '=', $request->name);
}), ],
]);
}
或者,您可以使用这样的方法,而不会在where
中传递回调函数
public function validation($request)
{
return $this->validate($request, [
'name' => 'required|max:255',
'last_name' => 'required|max:255',
'code' => array('required',Rule::exists('users')->where('name', '=', $request->name);),
]);
}