当前位置:  开发笔记 > 编程语言 > 正文

未定义的变量:Laravel中的错误

如何解决《未定义的变量:Laravel中的错误》经验,为你挑选了2个好方法。

当我想在我的laravel项目中注册用户时,页面总是说

未定义的变量:错误(查看:/var/www/resources/views/auth/register.blade.php)"

根据Laravel文档,$errors应始终自动设置:

因此,重要的是要注意每个请求的所有视图中都会提供$ errors变量,这样您就可以方便地假设$ errors变量始终定义并且可以安全使用.

我使用时在每个视图上都有这个:

@if (count($errors) > 0)
    
    @foreach ($errors->all() as $error)
  • {{ $error }}
  • @endforeach
@endif

或者当我想使用$errors变量时的任何其他方式.

为什么是这样?我之前从未遇到过这个问题.

有谁可以帮助我吗?



1> Marcin Nabia..:

你应该确保你app/Http/Kernel.phpmiddlewareGroups房产中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属性数组

要么

在routes.php文件中尝试在以下块中创建路由

Route::group(['middleware' => ['web']], function () {
    //routes here
});

更新版LARAVEL应用程序的更新

请注意,如果您使用web中间件两次,也可能会遇到问题.有在Laravel应用的改变5.2.27(不使用的那一刻Laravel框架混淆-您可以使用Laravel框架例如5.2.31,但是在5.2.24版本Laravel应用),其中web应用中间件自动为所有路线.因此,如果出现问题,您应该打开app/Providers/RouteServiceProvider.php文件并验证其内容.

你也可以在这里比较它:

适用于Laravel应用程序5.2.24的RouteServiceProvider

适用于Laravel应用程序5.2.27的RouteServiceProvider

如果您有更新的版本(web自动应用中间件),您不应再使用web中间件,routes.php或者您应该修改您的RouteServiceProvider方法以不应用web组中间件.否则,如果web中间件组自动应用于此提供程序,并且您也使用它,则routes.php可能会得到非常意外的结果.



2> Felipe Peña..:

我在Laravel 5.2.x中遇到了同样的问题.

routes.php文件内部尝试你在里面创建你的路线

Route::group(['middleware' => ['web']], function () {
    //routes here
}

声明.

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有