Как я могу обновить мою форму с проверкой в ​​laravel?

Когда вы когда-либо обращаетесь к статической переменной или методу с объектами во время компиляции, она преобразуется в имя класса. например:

Main main = null;
System.out.println(main.value);

Он выведет значение значения статической переменной, потому что во время компиляции он будет преобразован в

System.out.println(Main.value);

. Доказательство:

скачать декомпилятор и декомпилировать ваш .class-файл в .java-файл, и вы можете увидеть, что все статические методы или имя объекта, присвоенное переменной, автоматически заменяются именем класса.

0
задан Pankaj Sanam 5 March 2019 в 17:03
поделиться

2 ответа

Вам нужно вызвать 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');
}

. Я добавил еще одно условие в код для обработки ошибки проверки. Если проверка не пройдена, она будет перенаправлена ​​обратно вместе с вашими данными и сообщениями об ошибках проверки. Убедитесь, что у вас есть вспышка сеанса ошибок в ваших блейд-представлениях, чтобы показать ошибки.

0
ответ дан Pankaj Sanam 5 March 2019 в 17:03
поделиться

Для меня это лучший способ, я могу отслеживать запросы и другие исключения, помещая его в блок 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()
            ]);
        }
    }
0
ответ дан ViperTecPro 5 March 2019 в 17:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: