정의되지 않은 변수 : Laravel의 오류
내 laravel 프로젝트에 사용자를 등록하고 싶을 때 페이지에 항상
정의되지 않은 변수 : 오류 (보기 : /var/www/resources/views/auth/register.blade.php) "
Laravel 문서에 따르면 $errors
항상 자동으로 설정되어야합니다.
따라서 모든 요청에 대해 모든 뷰에서 $ errors 변수를 항상 사용할 수 있으므로 $ errors 변수가 항상 정의되어 안전하게 사용할 수 있다고 편리하게 가정 할 수 있습니다.
내가 사용할 때 모든 뷰에서 이것을 가지고 있습니다.
@if (count($errors) > 0)
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
또는 $errors
변수 를 사용하고 싶을 때 다른 방법으로 .
왜 이런거야? 나는 전에이 문제가 없었습니다.
누군가 제발 도와 줄 수 있습니까?
app/Http/Kernel.php
in middlewareGroups
property에 web
다음이 있는지 확인해야합니다 .
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
이 배열에서. 이것을 https://github.com/laravel/laravel/blob/master/app/Http/Kernel.php 와 비교 하십시오.
편집하다
당신이 추가해야 할 것 같다 'middleware' => 'web'
당신이 사용하는 경로 또는 풋 위해 \Illuminate\View\Middleware\ShareErrorsFromSession::class,
에 $middleware
속성 배열
또는
route.php 파일 내부에서 다음 블록 내에 경로를 생성하십시오.
Route::group(['middleware' => ['web']], function () {
//routes here
});
최신 버전의 LARAVEL 애플리케이션 업데이트
web
미들웨어를 두 번 사용하는 경우에도 문제가 발생할 수 있습니다 . Laravel 응용 프로그램의 변화가 있었다 5.2.27 (Laravel 프레임 워크는 지금 사용과 혼동하지 않는다 - 당신은 예를 들어 5.2.31에 대한 Laravel 프레임 워크를 사용하지만 버전 5.2.24에서 Laravel 응용 프로그램있을 수 있습니다)있는 web
미들웨어 적용을 모든 경로에 대해 자동으로. 따라서 문제가 발생한 경우 app/Providers/RouteServiceProvider.php
파일을 열고 내용을 확인해야합니다.
여기에서도 비교할 수 있습니다.
새로운 버전 ( web
미들웨어 자동 적용 )이 web
있는 경우 routes.php
더 이상 미들웨어를 사용 하지 않거나 그룹 미들웨어를 RouteServiceProvider
적용하지 않도록 방법을 수정해야합니다 web
. 그렇지 않으면 web
미들웨어 그룹이이 제공자에 자동으로 적용되고이를 또한 사용하면 routes.php
예상치 못한 결과가 발생할 수 있습니다.
Laravel 5.2.x에서도 이와 동일한 문제가 발생했습니다.
의 내부 routes.php
파일 요는 내 경로를 만들려고
Route::group(['middleware' => ['web']], function () {
//routes here
}
성명서.
또한주의해야 할 사항 : 테스트를 작성하고 뷰 에 $ errors 변수가있는 경우 WithoutMiddleware 특성을 사용하지 마십시오 .
비슷한 문제가 있었고 미들웨어 속성 배열에 경로를 추가하여이 문제를 해결했습니다.
그러나
나중에 호출 php artisan route:cache
(라우트 캐시 지우기) 후에 만 작동했습니다 .
여러분 중 일부가 유용하게 사용되기를 바랍니다.
이 오류도보고 있었고 나중에이 WithoutMiddleware
특정 테스트에 대한 인증을 우회하는 수단으로 특성을 사용했음을 깨달았 지만 결국 유효성 검사 오류 바인딩도 제거되었습니다. 그래서 뷰가 계속 작동하도록 특성 사용을 중단해야했습니다.
App \ Http \ Kernel.php 파일로 이동 합니다. $middlewareGroups
속성의 모든 항목 을 $middleware
.
자세한 내용은 http://www.tisuchi.com/laravel-5-2-undefined-variable-error-validation/을 확인하십시오 .
count는 변수가 이미 존재한다고 가정하기 때문에 실제로 실현할 수 없습니다. 조건 확인을 다음으로 변경 @if($errors->has())
하거나@if($errors)
또한 리디렉션하는 경우 컨트롤러에서 이것을 사용하십시오.
return redirect()->back()->with('errors', $validator->messages());
EDIT: seen now that you are using L5.2 This may answer your question - you need to put your Routes in Route group.
protected $middleware = [ \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
\Social\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\Social\Http\Middleware\VerifyCsrfToken::class,
];
/**
* The application's route middleware groups.
*
* @var array
*/
protected $middlewareGroups = [
'web' => [
],
'api' => [
'throttle:60,1',
],
];
/**
* The application's route middleware.
*
* These middleware may be assigned to groups or used individually.
make your kernel look like this
Your problem will be fixed by using this method.
Route::group(['middleware' => ['web']], function () {
//routes should go here
});
If this doesn't help you, just run the following artisan command in addition to the above code:
php artisan key:generate
I solved in this way while using 5.2.*
It was not actually error, it was warning you can remove using php error_reporting() function
I removed warning in my laravel 5.6 by using
error_reporting(E_ALL ^ E_NOTICE);
More Detail : http://php.net/manual/en/function.error-reporting.php
Hope it will help you, thank you
참고URL : https://stackoverflow.com/questions/34454081/undefined-variable-errors-in-laravel
'Programing' 카테고리의 다른 글
누구나 모든 IP에서 액세스 할 수 있도록 CIDR / IP를 설정 하시겠습니까? (0) | 2020.11.27 |
---|---|
(유사한) 문자열 집합에서 접두사 결정 (0) | 2020.11.27 |
DNS 문제, nslookup 작동, ping 작동 안 함 (0) | 2020.11.27 |
C 개발을위한 최고의 IDE는 무엇입니까? / IDE 대신 Emacs를 사용하는 이유는 무엇입니까? (0) | 2020.11.27 |
Autofac : 유형의 모든 인스턴스 해결 (0) | 2020.11.27 |