当我想在我的 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
财产为web
你有:
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
在这个数组中。将此与https://github.com/laravel/laravel/blob/master/app/Http/Kernel.php
EDIT
看来你需要添加'middleware' => 'web'
对于您正在使用或放置的路线\Illuminate\View\Middleware\ShareErrorsFromSession::class,
into $middleware
属性数组
or
在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
文件并验证其内容。
您也可以在这里进行比较:
如果您有较新的版本(适用web
中间件自动),你不应该使用web
中间件在routes.php
不再或者你应该修改你的RouteServiceProvider
方法不适用web
组中间件。否则如果web
中间件组会自动应用到此提供程序中,并且您也可以在routes.php
你可能会得到非常意想不到的结果。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)