所以我跟随Laravel 5基础知识教程,我坚持表单验证.我完全按照教程进行了操作,但是我得到了一个未定义的变量:我的创建文章视图中的错误.
在我正在关注的教程和我在网上找到的内容中他们说错误变量总是在刀片文件中供你使用所以我不知道我做错了什么?
任何帮助,将不胜感激!喜欢Laravel除了这个错误!
View @if($errors->any())
调节器
all()); return 'the user has been registered!'; return view('user.profile'); } }
请求验证
'required', 'email' => 'required|email', 'country' => 'required', 'password' => 'required|min:6', 'confirm_password' => 'required|same:password', 'height' => 'required', 'weight' => 'required', ]; } }
user1669496.. 41
这是5.2升级的一个突破性问题.正在发生的是中间件,它负责使errors
所有视图可用的变量未被利用,因为它已从全局中间件转移到web
中间件组.
有两种方法可以解决这个问题:
在您的kernel.php
文件中,您可以将中间件\Illuminate\View\Middleware\ShareErrorsFromSession::class
移回protected $middleware
属性.
您可以使用路由组包装所有Web路由并将web
中间件应用于它们.
Route::group(['middleware' => 'web'], function() { // Place all your web routes here... });
小智.. 23
解决了
您可以更改以下任何一项:
1.把你的工作路线(app/http/routes.php)
上
Route::group(['middleware' => ['web']], function () {
// Here like
Route::get('/', 'TodoController@index');
Route::post('/', 'TodoController@store');
});
截图 -
2.将您的protected $middlewareGroups web
(app/Http/Kernel.php)
上protected $middleware = []
截图 -
这是5.2升级的一个突破性问题.正在发生的是中间件,它负责使errors
所有视图可用的变量未被利用,因为它已从全局中间件转移到web
中间件组.
有两种方法可以解决这个问题:
在您的kernel.php
文件中,您可以将中间件\Illuminate\View\Middleware\ShareErrorsFromSession::class
移回protected $middleware
属性.
您可以使用路由组包装所有Web路由并将web
中间件应用于它们.
Route::group(['middleware' => 'web'], function() { // Place all your web routes here... });
解决了
您可以更改以下任何一项:
1.把你的工作路线(app/http/routes.php)
上
Route::group(['middleware' => ['web']], function () {
// Here like
Route::get('/', 'TodoController@index');
Route::post('/', 'TodoController@store');
});
截图 -
2.将您的protected $middlewareGroups web
(app/Http/Kernel.php)
上protected $middleware = []
截图 -
简单来说,你必须搬家:
\Illuminate\Session\Middleware\StartSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class,
从protected $middlewareGroups
到protected $middleware
这是解决方案:
使用中间件更改路由组的定义,来自:
Route::group(['middleware' => 'web'], function () {
至
Route::group(['middlewareGroups' => 'web'], function () {
资料来源:https://github.com/laravel/framework/issues/13000
只是删除, 'middleware' => 'web'
从Route::group(array('prefix' => 'user', 'middleware' => 'web'), function()
在routes.php文件页面或
移动
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
从protected $middlewareGroups
以protected $middleware
在kernel.php页
正如Laravel文档所说:
注意:如果您的Laravel副本具有已包含Web中间件组中的默认路由文件的RouteServiceProvider,则无需手动将该组添加到routes.php文件中.
因此从routes.php
文件中删除将是正确的方法.
发布此信息可能对其他人有用,
作为Smartrahat在第一个解决方案,在你提到的Kernel.php
文件(app/Http/Kernel.php
)移动\Illuminate\View\Middleware\ShareErrorsFromSession::class
从$middlewareGroups
以protected $middleware
财产,但同样会开始引发错误"会话存储不设置要求",
要解决这一举动
\Illuminate\Session\Middleware\StartSession::class,
来$middleware property
为好.