Как сделать, чтобы эта функция искала строку в таблице не по имени Джон но по вменяемым ‘название’ ?
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');
}), ],
]);
}
Проверьте ваш параметр и измените «Джон» на запрос-> имя
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)
],
]);
}
Вы должны использовать 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);),
]);
}