2017-04-11 2 views
0

나는 앱이 개발 모드에 있는지 확인하는 글로벌 미들웨어를 가지고 있으며, 로그인 양식보기를 반환하면 로그인 변수의 유효성을 검사하고 오류 변수를 사용합니다.

응용 프로그램은 커널 \ 내보기에

/** 
* The application's global HTTP middleware stack. 
* 
* @var array 
*/ 
protected $middleware = [ 
    \App\Http\Middleware\CheckForDevelopmentMode::class, 
    \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class, 
    \App\Http\Middleware\TrimStrings::class, 
    \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class, 
]; 

$ 오류 변수가

{!! $errors->first('email', '<span class="help-block">:message</span>') !!} 

이 Laravel 5.2에서 큰 일을 HTTP를 \하지만 w : 유효성 검사 오류를 표시 암탉 나는 세션을 L5.4로 업데이트했고 오류 공유는 웹 미들웨어 그룹에서 인스턴스화되어 이제는 L5.4에서 내 글로벌 미들웨어의 세션에 대한 액세스가 없다.

/** 
* The application's route middleware groups. 
* 
* @var array 
*/ 
protected $middlewareGroups = [ 
    'web' => [ 
     \App\Http\Middleware\EncryptCookies::class, 
     \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, 
     \Illuminate\Session\Middleware\StartSession::class, 
     \Illuminate\View\Middleware\ShareErrorsFromSession::class, 
     \App\Http\Middleware\VerifyCsrfToken::class, 
     \Illuminate\Routing\Middleware\SubstituteBindings::class, 
    ], 
    'api' => [ 
     'throttle:60,1', 
     'bindings', 
    ], 
]; 

유효성 검사를 위해 $ errors 변수를 사용할 수 있도록 전역 미들웨어에서 새 세션을 수동으로 인스턴스화하려면 어떻게합니까?

+0

오류가 첫 번째 장소 $의 오류 - 존재 직접 확인> ("이메일") – Paudel

+0

@Paudel 이미()'첫번째> $ 오류 - '와 그 확인하고있다 방법, 문제가 laravel이 세션을 시작하고 웹 미들웨어 그룹에서 오류 변수를 공유하기 때문에 laravel이 기본적으로 모든보기에 포함하는 $ errors 변수는 내 글로벌 미들웨어에서 사용할 수 없습니다. – enriqg9

+0

경로는 어떻게 생겼습니까? –

답변

0

가장 쉬운 방법은보기에서 $ errors 변수에 액세스 할 수 있도록 세션을 시작하고 전역 미들웨어에서 오류를 공유하는 것이 었습니다. 만약 누군가가 다른 해결책을 추천한다면 나는 받아 들인 대답을 바꿀 것이다.

/** 
* The application's global HTTP middleware stack. 
* 
* @var array 
*/ 
protected $middleware = [ 
    // Start the session and share errors globally so that we can access the 
    // errors variable in the development mode view. 
    \Illuminate\Session\Middleware\StartSession::class, 
    \Illuminate\View\Middleware\ShareErrorsFromSession::class, 
    \App\Http\Middleware\CheckForDevelopmentMode::class, 
    \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class, 
    \App\Http\Middleware\TrimStrings::class, 
    \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class, 
];