[英]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.