Programing

정의되지 않은 변수 : Laravel의 오류

lottogame 2020. 11. 27. 07:37
반응형

정의되지 않은 변수 : 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.phpin middlewareGroupsproperty에 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.

Laravel 5.2 validation errors


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

반응형