Laravel 7 不显示闪信
Laravel 7 does not display flash message
Laravel Framework 7.25.0
PHP 7.2 on LARAGON
不知道是不是和我的路线有关系,我想可能是我胡说八道。
没有显示即时消息,我只能通过将其设置为 Session::put、在视图中检索然后删除它来显示消息。
Session::put('success', 'example');
return redirect()->route('example', array('id_example' => 'example'));
我用with,withErrors的时候,前面总是闪returns null.
return redirect()->route('example', array('id_example' => 'example'))->with('success', 'Text');
or
return redirect()->back()->withErrors( ['example'] );
or
Session::flash('success', 'example');
在视图中我尝试了几种方法,它们的结果都是一样的。除非我手动使用 Session::put 来存储 return 消息。
@if (Session::has('error'))
@if ($errors->any())
@if (Session::has('success'))
@if (session()->has('success'))
这是我在路线上使用的模型。
Route::namespace('Front')->group(function(){
# Homepage
Route::get('/', 'ExampleFrontController@Home')->name('home');
})
Route::namespace('Admin')->group(function(){
# Login
Route::get('/admin/login', 'ExampleAdminController@Index')->name('admin.login');
})
我使用 Session::put 没有问题,但是,我的表单请求规则中的 returns 也没有显示,这给我带来了问题。
问完问题后,我决定去考一个还没考的
我评论了内核class:StartSession::class和ShareErrorsFromSession::class。
按计划,会话停止工作。
在我的例子中,我不得不将两个 classes 从 $ middlewareGroups 移动到 $ middleware,这解决了我上面的问题。
我改变了:
protected $middleware = [
// \App\Http\Middleware\TrustHosts::class,
\App\Http\Middleware\TrustProxies::class,
\Fruitcake\Cors\HandleCors::class,
\App\Http\Middleware\CheckForMaintenanceMode::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
];
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
// \Illuminate\Session\Middleware\AuthenticateSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
'api' => [
'throttle:60,1',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
];
为此
protected $middleware = [
// \App\Http\Middleware\TrustHosts::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\TrustProxies::class,
\Fruitcake\Cors\HandleCors::class,
\App\Http\Middleware\CheckForMaintenanceMode::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
];
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
# \Illuminate\Session\Middleware\StartSession::class,
# \Illuminate\View\Middleware\ShareErrorsFromSession::class,
# \Illuminate\Session\Middleware\AuthenticateSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
Laravel Framework 7.25.0
PHP 7.2 on LARAGON
不知道是不是和我的路线有关系,我想可能是我胡说八道。
没有显示即时消息,我只能通过将其设置为 Session::put、在视图中检索然后删除它来显示消息。
Session::put('success', 'example');
return redirect()->route('example', array('id_example' => 'example'));
我用with,withErrors的时候,前面总是闪returns null.
return redirect()->route('example', array('id_example' => 'example'))->with('success', 'Text');
or
return redirect()->back()->withErrors( ['example'] );
or
Session::flash('success', 'example');
在视图中我尝试了几种方法,它们的结果都是一样的。除非我手动使用 Session::put 来存储 return 消息。
@if (Session::has('error'))
@if ($errors->any())
@if (Session::has('success'))
@if (session()->has('success'))
这是我在路线上使用的模型。
Route::namespace('Front')->group(function(){
# Homepage
Route::get('/', 'ExampleFrontController@Home')->name('home');
})
Route::namespace('Admin')->group(function(){
# Login
Route::get('/admin/login', 'ExampleAdminController@Index')->name('admin.login');
})
我使用 Session::put 没有问题,但是,我的表单请求规则中的 returns 也没有显示,这给我带来了问题。
问完问题后,我决定去考一个还没考的
我评论了内核class:StartSession::class和ShareErrorsFromSession::class。
按计划,会话停止工作。
在我的例子中,我不得不将两个 classes 从 $ middlewareGroups 移动到 $ middleware,这解决了我上面的问题。
我改变了:
protected $middleware = [
// \App\Http\Middleware\TrustHosts::class,
\App\Http\Middleware\TrustProxies::class,
\Fruitcake\Cors\HandleCors::class,
\App\Http\Middleware\CheckForMaintenanceMode::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
];
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
// \Illuminate\Session\Middleware\AuthenticateSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
'api' => [
'throttle:60,1',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
];
为此
protected $middleware = [
// \App\Http\Middleware\TrustHosts::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\TrustProxies::class,
\Fruitcake\Cors\HandleCors::class,
\App\Http\Middleware\CheckForMaintenanceMode::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
];
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
# \Illuminate\Session\Middleware\StartSession::class,
# \Illuminate\View\Middleware\ShareErrorsFromSession::class,
# \Illuminate\Session\Middleware\AuthenticateSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],