laravel5.2의 폼 검증validator에서 $error를 사용할 수 없는 경우

1871 단어
최근에 프로젝트를 하고 있는데 갑자기 error가 사용하는 문제가 생각났어요. 같이 관심을 가지지 않았어요. 생각해 보니 구덩이가 많아요. 그리고 laravel의 관련 원본을 읽어보니 관련 내용이 꽤 많아요. 그리고 stackoverflow에서 찾아봤는데 드디어 문제를 해결했어요.다음은 먼저 $errors를 되돌리는 두 가지 방법을 설명합니다.두 가지 방법 모두 RegistersUsers 파일의register에서 변경됨
 public function register(Request $request)
    {
        $validator = $this->validator($request->all());
        if ($validator->fails()) {// , 
           $this->throwValidationException(
                $request, $validator
           );
        }

        Auth::guard($this->getGuard())->login($this->create($request->all()));

        return redirect($this->redirectPath());
    }
 public function register(Request $request)
    {
        $validator = $this->validator($request->all());
        if ($validator->fails()) {  //         
            return redirect('/create')
                ->withErrors($validator)
                ->withInput();
        }
        Auth::guard($this->getGuard())->login($this->create($request->all()));
        return redirect($this->redirectPath());
    }

문제는 laravel5.2에서 기본적으로 설정된 $errors가 표시되지 않습니다. 설정을 변경해야 합니다. 해결 방법을 제시합니다.(1) 우선Route::group(['middleware' =>['web'] ],function(){}), 소포 루트.(2) 두 번째 단계는 여러 가지 방법과 관련된다. 구체적으로 어떻게 이동하는지 한번 해 볼 수 있다. 나도 어느 것을 직접 사용하지 않는다.<1>커널에 있습니다.php 파일에서 \Illuminate\View\Middleware\ShareErrorsFromSession::classprotected $middleware 로 이동합니다.<2>전체적으로protected $middlewareGroupsprotected $middleware = []로 이동합니다.<3>\Illuminate\Session\Middleware\StartSession::class,\Illuminate\View\Middleware\ShareErrorsFromSession::class,을(를) protected $middleware = []로 이동합니다.
다음은 Stackoverflow 주소입니다. 보실 수 있습니다.

좋은 웹페이지 즐겨찾기