会话消息无法正常工作我尝试了此代码,许多修复程序在线提供 这里是我的商店功能`
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
答案 0 :(得分:6)
我用laravel 5.2解决了这个问题。
我有这样的路线
Route::group(['middleware' => [ 'web','auth']], function () {
.......
}
所以删除了网络中间件
Route::group(['middleware' => ['auth']], function () {
.......
}
并开始工作
分析:默认情况下,Laravel添加Web中间件。 通过php artisan route检查:列表显示web,web,auth。
所以通过再次定义它可以为web中间件重定向两次。
答案 1 :(得分:2)
我解决了laravel 5.2的问题。
我在这里有所有路线:
Route::group(['middleware' => 'web'], function() {
我将其删除,因为当我在名称中间件列中使用命令php artisan route:list时,“web”显示时间: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
答案 2 :(得分:1)
我已解决laravel 6.x的问题
我将\Illuminate\Session\Middleware\StartSession::class
和\Illuminate\View\Middleware\ShareErrorsFromSession::class
从网络$middlewareGroups
移至 $middleware
中的app\Http\Kernel.php
,一切都按预期开始
答案 3 :(得分:0)
是否包含以下命名空间
use Session;
而不是以下代码
Session::put('flash_message', 'Task successfully added!');
使用
Session::flash('flash_message', 'Task successfully added!');
而不是
return redirect()->back();
尝试使用
return redirect()->route('your route');
答案 4 :(得分:0)
这个论坛有点晚了。我遇到了这个问题,我去过不同的站点,寻找正确的解决方案,但没有一个可行。这是我的情况,我正在使用v6.0
,然后将路由放入routes\api.php
中。
我认为将route
放在正确的位置或文件上是有区别的,无法解释更多。
这是我的解决方法,我将路线从routes\api.php
转移到routes\web.php
,经过大量研究后,这就是现在成功显示即显消息的地方。
答案 5 :(得分:0)
尝试此代码
Session::flash('flash_message', 'Task successfully added!');
Session::save();
return redirect()->back();
这对我有用
答案 6 :(得分:0)
如果“会话”无法在刀片视图中显示错误,这将起作用。
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
答案 7 :(得分:0)
当验证失败时,不再执行进一步的代码并再次加载上一页。这就是会话消息不起作用的原因。为了检查任何验证错误,请使用刀片文件顶部的以下代码片段。
@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