[英]Laravel session Flash Message Not working
会话消息不起作用我试过这个代码和许多在线可用的修复这里id我的商店功能`
public function store(Request $request)
{
// dd($request->all());
$this->validate($request, [
'name' =>'required',
'username' =>'required',
'email' =>'required',
'address' =>'required',
'likes' =>'required',
'gender' =>'required'
]);
$input = $request->all();
Contacts::create($input);
Session::put('flash_message', 'Task successfully added!');
return redirect()->back();
}
并通过此代码检索
@if(Session::has('flash_message'))
<div class="alert alert-success">
{{ Session::get('flash_message') }}
</div>
@endif
我解决了 laravel 6.x 的问题
一旦我将\\Illuminate\\Session\\Middleware\\StartSession::class
和\\Illuminate\\View\\Middleware\\ShareErrorsFromSession::class
从 web $middlewareGroups
到app\\Http\\Kernel.php
$middleware
,一切都开始按预期工作。
我用 laravel 5.2 解决了这个问题。
我有这样的路线
Route::group(['middleware' => [ 'web','auth']], function () {
.......
}
所以去掉了web中间件
Route::group(['middleware' => ['auth']], function () {
.......
}
并开始工作
分析:默认 Laravel 添加 web 中间件。 通过 php artisan route:list 检查它显示 web, web,auth 。
所以通过再次定义它为 web 中间件重定向两次。
我用 Laravel 5.2 解决了这个问题。
我在里面有所有的路线:
Route::group(['middleware' => 'web'], function() {
我删除它是因为当我在 Name Middleware 列中使用命令 php artisan route:list 时,“web”显示为 times: web, web.
如果您有 AUTH 替换为:
Route::group(['middleware' => 'auth'], function() {
我也删除了一个重复的路由(在路由.php 中)。 现在我只有:
Route::resource('/publicaciones', 'PublicacionesController');
我的控制器:
return redirect()->back()->with('success', 'Saved!');
我的观点:
@if(Session::has('success'))
<div class="alert alert-success">
{{ Session::get('success') }}
</div>
@endif
您是否包含以下命名空间
use Session;
而不是下面的代码
Session::put('flash_message', 'Task successfully added!');
用
Session::flash('flash_message', 'Task successfully added!');
在而不是
return redirect()->back();
尝试使用
return redirect()->route('your route');
这个论坛有点晚了。 我遇到了这个问题,我一直在不同的网站上寻找正确的解决方案,但都没有奏效。 这是我的情况,我使用的是v6.0
,我将路由放在routes\\api.php
。
我认为将route
放在正确的地方或文件中是有区别的,无法解释更多。
这是我解决的方法,我将路由从routes\\api.php
到routes\\web.php
,经过大量研究,我现在成功显示了 flash 消息。
试试这个代码
Session::flash('flash_message', 'Task successfully added!');
Session::save();
return redirect()->back();
这对我有用
如果“会话”无法在您的刀片视图中显示错误,这将起作用。
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
当验证失败时,不再执行任何代码并再次加载上一页。 这就是会话消息不起作用的原因。 为了检查任何验证错误,请使用刀片文件顶部的以下代码片段。
@if ($errors->any())
@foreach ($errors->all() as $error)
<div class="alert alert-danger alert-block">
<button type="button" class="close" data-dismiss="alert">×</button>
<strong>{{ $error }}</strong>
</div>
@endforeach
@endif
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.