2016-12-30 152 views
1

我想創建像下面的代碼會話,但會議不工作請sussgest我任何soluton。會話不工作在laravel 5.3

保存

$data = array(
    "id" => $row->id, 
    "name" => $row->name 
); 

Session($data); 

Session('id'); 

我也試過網絡中間件,但直到同一個會話不工作

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

}); 
+0

你在哪裏嘗試?在控制器或其他地方? – C2486

+0

我在模型類中保存和檢索會話 –

+0

下面給出的答案是否適合您? – C2486

回答

0

你應該remove web middleware from routes用會話解決問題。

的持久化數據也是正確的語法是:

session(['key' => $data]); 

獲取數據使用:

session('key'); 
+0

我現在不使用中間件,而是直到問題發生。 –

+0

使用'web'中間件會定義中斷會話,因此請檢查是否在別的地方手動添加它。另外,運行'php artisan route:clear'命令清除路由緩存。 –

1

保存數據

session()->put('data' => $data); 

獲取數據

session()->get('data'); 
+0

不工作同樣的空響應 –

0

我的會話沒有B工作因爲我試圖在控制器構造函數中放置和獲取,而Laravel 5.3不支持在構造函數中直接放置和獲取會話。如果你想在構造函數中放置和獲取會話,則需要在構造函數中添加下面的代碼。

function __construct() 
{ 
    $this->middleware(function ($request, $next) 
    { 

    }); 
} 
0

如果可以遵循以下步驟,會話將正常工作...

第一步:

添加以下代碼的控制器(其中會話將被用來保存數據)

use Session; 

第二步內:

內部的方法該控制器會話代碼如下:

Session::put('name', 'Sabuz'); 
Session::put('data', $data); 

任何數據可以保存,但使put方法肯定第一個參數是關鍵,第二個是它的價值

第三步:

的數據能夠在任何地方,只要被視爲與以下命令會話齲齒的數據

$name = Session::get('name'); //get method just use the key of a put method 
echo $name; 

希望它是可行的。