簡體   English   中英

Laravel - 使用控制器之間的會話

[英]Laravel - Working with sessions between controllers

我需要在所有應用程序中顯示一些值,有時我需要在控制器之間使用這些值。 I was trying to use Session, but I maybe it is not the answer to that, because if I am not wrong, Laravel store the session data temporarily in memory and only after everything has been executed, will it dump the session data into storage (文件、cookie、redis 等)。

例如,我有一個像這樣的 controller:

class GiftController extends Controller
{
    public function dashboard(){
        $token = (Session::has('token')) ? Session::get('token') : NULL;
        if (is_null($token)){
           return view('test.erro', ['message' => 'no session!']);
        }else{
           return view('test.ok', ['message' => $token]);
        } 
    }


    public function setsession(){
          Session::put('token','xxxxxxxxxxxx');
          return redirect('test/dashboard');  
    }
}

在這種情況下,如果我在 setsession() 中對 Session::get('token') 進行回顯,則會顯示該值,但是當它進入儀表板()時,session 什么也沒有顯示。

我做錯了什么?
或者在 session 之外使用什么更好的主意?

我正在使用 Laravel 框架 5.8.37

我找到了解決方案,但我在markkayff的幫助下得到了它。

他告訴我檢查 my.env 文件,他是對的。 這是與 config/session.php 不同的 SESSION_DRIVER 值

在 config/session.php 是 'driver' => env ('SESSION_DRIVER', 'file')

盡管沒有 .env 文件但 app.yaml 因為我在 GCP 應用程序引擎中執行此項目,但此文件中的 session 是 SESSION_DRIVER: cookie。

所以我在 config / session.php 中將 'driver' => env ('SESSION_DRIVER', ' file ') 行更改為 'driver' => env ('SESSION_DRIVER', ' cookie ')。

現在它正在工作!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM