【问题标题】:Session flash messages are not working in Laravel 7会话闪存消息在 Laravel 7 中不起作用
【发布时间】:2021-04-23 11:44:51
【问题描述】:

自从我将 Laravel 版本更新到 7.4 后,会话闪现消息在 Views 中停止工作。

这是我的代码的一部分: 网页.php

Route::middleware(['web'])->group(function () {

 Route::middleware(['permission:super_user'])->group(function () {

  Route::get('/get/{id}', 'TestController@show');
  Route::post('/set/{id}', 'TestController@update');

 });

});

控制器方法:

public function update(Request $request, $id){

    $message = new stdClass();
    $message->type = 'success';
    $message->text = "Updated successfully!" ;
    session()->flash('message', $message);
    return Redirect::back();

}

public function show(Request $request, $id){

   return view('pages.account')

}

会话数据在那里,但闪存消息在重定向之间的某处丢失,不确定确切的位置。我尝试了几种解决方案,例如会话刷新,从中间件中删除网络,但没有奏效。有线索吗?

编辑: 我发现此方法中存在会话闪存。这意味着应用重定向将其删除?

function back($status = 302, $headers = [], $fallback = false)
{
    dd(session());
    return app('redirect')->back($status, $headers, $fallback);
}

【问题讨论】:

    标签: laravel session


    【解决方案1】:

    尝试使用 with() 方法。

    return redirect()->back()->with('message', 'IT WORKS!');
    

    然后在刀片文件中您可以将其查看为

     @if(session()->has('message'))
        <div class="alert alert-success">
            {{ session()->get('message') }}
        </div>
     @endif
    

    【讨论】:

    • 我也试过这个,但没有运气。似乎数据在中间件的某个地方丢失了,但不确定具体在哪里。
    • 不用中间件试试
    • 我发现此方法中存在会话闪存。这意味着应用程序重定向删除它?任何解决方案? function back($status = 302, $headers = [], $fallback = false) { return app('redirect')-&gt;back($status, $headers, $fallback); }
    【解决方案2】:

    试试这个解决方案。 在控制器方法中:

    public function update(Request $request, $id){
    
        $message = new stdClass();
        return redirect()->back()->with('success', 'Updated successfully!');
    }
    

    在刀片文件中这样做:

    @if(session()->has('success'))
        <div class="alert alert-success text-center">
             {{ session()->get('success') }}
        </div>
    @endif
    

    【讨论】:

    • 我也试过这个,但没有运气。似乎数据在中间件的某个地方丢失了,但不确定具体在哪里。
    • 点击请求时检查是否到达更新功能?
    • 在更新中,有闪信息,但是重定向回来后,get方法中没有任何闪信息。
    • 请用刀片文件更新您的问题。
    • 我发现此方法中存在会话闪存。这意味着应用程序重定向删除它?任何解决方案? function back($status = 302, $headers = [], $fallback = false) { return app('redirect')-&gt;back($status, $headers, $fallback); }
    猜你喜欢
    • 2018-08-03
    • 2016-08-25
    • 1970-01-01
    • 2018-04-22
    • 2019-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多