2016-02-29 71 views
1

我已經想出瞭如何在外部腳本中啓動Laravel,但我似乎無法獲取Session :: put()。外部使用Laravel 5會話

$path = "/path/to/laravel/bootstrap/"; 

require $path . 'autoload.php'; 
$app = require_once $path . 'app.php'; 

$app->make('Illuminate\Contracts\Http\Kernel') 
    ->handle(Illuminate\Http\Request::capture()); 

print_r(Session::all()); 
Session::put('test', 1); 

我刷新即使經過,這是輸出:

Array ( 
    [_token] => emt8sZz7U6prnGUnHV889XPKwuhRCuMpVsAOfWW0 
    [flash] => Array ( 
     [old] => Array () 
     [new] => Array () 
    ) 
    [_previous] => Array ( 
     [url] => http://myurl.local 
    ) 
) 

在沒有我的測試變量的痕跡。出於某種原因,它沒有進入會話。

SOLUTION:

看起來我需要呼叫會話::保存()。下面的新問題。

新的問題:

我發現Laravel會議工作的偉大時,已經到位的會話。當沒有會話時,這種方法不會創建新的會話。具體而言,cookie(laravel_session)未設置。

任何想法?

回答

0

您是否嘗試過從外部腳本手動啓動會話?像這樣的東西應該做的伎倆:

if (isset($_COOKIE[$app['config']['session.cookie']])) { 
    $id = $app['encrypter']->decrypt($_COOKIE[$app['config']['session.cookie']]); 
    $app['session']->driver()->setId($id); 
} 

$app['session']->driver()->start();