2017-09-26 106 views
0

我有一個遺留應用程序處理auth並設置一些會話變量;我需要訪問Laravel應用程序中的這些會話變量。我試着開始一個會話並訪問控制器中的一個變量 - 這是行不通的。我得到一個糟糕的錯誤 - 未定義指數:命名
這裏是我的嘗試:有沒有辦法在Laravel中訪問PHP本機會話變量?

public function __construct() 
    { 
     session_start(); 
    } 

public function index()   
    { 
     //test output php (not Laravel) sessions 
     echo "TEST CONTROLLER ACCESSED!!\n\n"; 
     print_r($_SESSION['name']); 
    } 

我也試過同樣的方法在路由中的關閉。兩個失敗。

是否有內Laravel訪問PHP本地會話變量的方法嗎?

編輯
我不明白我的問題被標記爲重複。引用的答案是關於我得到的錯誤。它不回答我的問題。我明白錯誤意味着什麼,我需要知道爲什麼會話不可用於Laravel。

請讓我知道你需要的任何其他信息。
編輯2
$ _SESSION ['name']存在於舊版應用程序中,但未傳遞給Laravel。這兩個應用程序都在同一臺服務器和域上。如何追蹤發生了什麼?

+0

嘗試尋找到會話中使用'DD超級全局($ _ SESSION)'。這將使您更深入地瞭解原始會話數據的結構。 – Aknosis

+0

你正在訪問它就好了。在使用之前,只需使用if(isset($ _ SESSION ['name']))'來檢查$ _SESSION ['name']是否存在。 – ceejayoz

+0

@ceejayoz請解釋我的問題是如何重複的。我不明白。 –

回答

0

我希望在此發佈,它可以幫助別人。

事實證明,遺留應用程序使用非標準session.save_path (我正在處理一個非常大的代碼庫,所以這個事實並不像看起來那麼明顯)。

的解決方案是設置路徑保存到Laravel相同的位置。 ini_set('session.save_path', '/path/to/sessions/');

這做之前session_start()

見關於PHP命令here信息。

相關問題