Когда вы когда-либо обращаетесь к статической переменной или методу с объектами во время компиляции, она преобразуется в имя класса. например:
Main main = null;
System.out.println(main.value);
Он выведет значение значения статической переменной, потому что во время компиляции он будет преобразован в
System.out.println(Main.value);
. Доказательство:
скачать декомпилятор и декомпилировать ваш .class-файл в .java-файл, и вы можете увидеть, что все статические методы или имя объекта, присвоенное переменной, автоматически заменяются именем класса.
Вам нужно вызвать validate по $ request, например:
$request->validate([
'Name'=>'required',
'UserName'=>'required',
'Password'=>'required|min:6',
'email'=>'required|email',
]);
. Вот полный код:
public function update(Request $request, $id)
{
$request->validate([
'Name'=>'required',
'UserName'=>'required',
'Password'=>'required|min:6',
'email'=>'required|email',
]);
if (!$validator->fails()) {
$updateInfo= Info::findOrFail($id);
$updateInfo->user_id = $request->input('user_id');
$updateInfo->Name = $request->input('Name');
$updateInfo->UserName = $request->input('UserName');
$updateInfo->Password = $request->input('Password');
$updateInfo->save();
} else {
\Session::flash('error', $validator->messages()->first());
return redirect()->back()->withInput();
}
return redirect('/info');
}
. Я добавил еще одно условие в код для обработки ошибки проверки. Если проверка не пройдена, она будет перенаправлена обратно вместе с вашими данными и сообщениями об ошибках проверки. Убедитесь, что у вас есть вспышка сеанса ошибок в ваших блейд-представлениях, чтобы показать ошибки.
Для меня это лучший способ, я могу отслеживать запросы и другие исключения, помещая его в блок try catch
public function update(Request $request, $id)
{
try{
$validator = Validator::make($request->all(), [
'name' => 'required',
'UserName' => 'required',
'Password' => 'required',
'email' => 'required|email',
]);
if($validator->fails()) {
return redirect()
->route('path_to_edit_form')
->withErrors($validator)
->withInput();
}
Info::where('id',$id)->update([
'user_id' => $request->get('user_id'),
'Name' => $request->get('Name'),
'UserName' => $request->get('UserName'),
'Password' => $request->get('Password'),
]);
return back()->with([
'alert_type' => 'success',
'message' => 'User info updated successfully.'
]);
}catch(\Exception $e){
return back()->with([
'alert_type' => 'danger',
'message' => $e->getMessage()
]);
}
}