![](/img/trans.png)
[英]Laracasts session->flash(); does not work Laravel Framework 5.6.3
[英]Laravel Flash Session does not work expectedly sometime
我正在開發一個項目,在提交表單后我使用 flash session 來顯示消息。 但問題是 flash session 消息有時出現有時不出現。 我也在這里分享了代碼。
這是 function:
public function edit_department(Request $req,$id)
{
$dep = department::where("externalid", $id)->first();
if(!$dep)
{
return ['message' => 'Department Not Found'];
}
$supervisors = member::select("id","name")->whereRelation("get_role","role_code","=","supervisor_13")->get();
if($req->method() == "POST")
{
$req->validate([
'name'=>'required|min:3|max:60',
'supervisor'=>'nullable|exists:members,id',
'time' =>'required|integer|min:1|max:50000',
'description'=>'nullable|max:2999',
]);
try
{
$sup_temp = $dep->supervisor_id;
$dep->name = $req->name;
$dep->ticket_time = $req->time;
$dep->description = $req->description;
$dep->supervisor_id = $req->supervisor;
$desc = "";
if($dep->save())
{
if($dep->wasChanged())
{
$desc = "The department ( ".$dep->name." ) has been updated"." by ".session("cms_member_name")." (".session("cms_member_role_name").")";
$users = array();
$this->mail_subject =" Department Updated";
$this->mail_body['description'] = $desc;
$this->mail_link = "department/profile";
$users = $this->get_mail_members($this->mail_subject, $this->mail_body, $this->mail_link, ['manager_12','super_admin_11'],[],$users);
dispatch(
function () use ($users)
{
$this->send_to_members("","","",$users,"false","2");
}
)->delay(now()->addSeconds(config("app.queue_time")));
return redirect()->back()->with(['form_submit_flag' => 'true', 'form_submit_msg' => 'Department Edited Successfully']);
}
else
{
return redirect()->back()->with(['form_submit_flag' => 'false', 'form_submit_msg' => 'Nothing was changed']);
}
}
else
{
return redirect()->back()->with(['form_submit_flag' => 'false', 'form_submit_msg' => 'Department Was not edited Successfully']);
}
}
catch(Exception $ex)
{
return redirect()->back()->with(['form_submit_flag' => 'false', 'form_submit_msg' => "An Exception Occured. ".$ex->getMessage()]);
}
}
return view("department.edit_department",compact("supervisors","dep"));
}
現在這是刀片代碼:
@if(Session::has("form_submit_flag"))
@if(session("form_submit_flag") == "true")
<div class="alert alert-success text-dark alert-dismissible">
<button type="button" class="close" data-dismiss="alert">×</button>
<strong>Message! </strong> {!! session("form_submit_msg") !!}
</div>
@elseif(session("form_submit_flag") == "false")
<div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert">×</button>
<strong>Message! </strong> {!! session("form_submit_msg") !!}
</div>
@endif
@endif
這就是路線。
Route::match(['get','post'],'edit_department/{id}',[DepartmentController::class,"edit_department"])->name("edit_department");
現在你可以看到我還有隊列代碼要執行。 現在,當我提交表單時,blade 中的 flash 消息有時會出現,有時不會。 但是所有代碼都可以完美運行。 沒有錯誤發生。 只是 flash 消息沒有出現。 我做錯了嗎?
任何幫助將不勝感激。
這是路線列表
| user_auth |
| | GET|POST|HEAD | edit_department/{id} | edit_department | App\Http\Controllers\DepartmentController@edit_department | web |
| | | | |
我知道這不是您的問題,但這可以幫助其他人遇到類似的問題。
如果您在路由頂部指定了一個中間件web
組,並且它駐留在 web.php 文件中,那么 web 中間件將被加載兩次,這會影響 session 數據。
我猜兩次加載任何中間件都會產生類似的效果。
有關該問題的更多詳細信息,請參閱這篇文章。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.