Как я могу обновить мою форму с проверкой в ​​laravel? - PullRequest
0 голосов
/ 05 марта 2019

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

Вы можете проверить мой код здесь -

public function update(Request $request, $id)
{
    $id->validate([
        'Name'=>'required',
        'UserName'=>'required',
        'Password'=>'required|min:6',
        'email'=>'required|email',
    ]);

    $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();

    return redirect('/info');
}

Ответы [ 2 ]

0 голосов
/ 05 марта 2019

Для меня это лучший способ, я могу следить за запросом и другими исключениями, поместив его в блок 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 голосов
/ 05 марта 2019

Вам необходимо вызвать validate по запросу $, например:

$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');
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...