2016-02-29 4 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 
    ) 
) 

без следа моей тестовой переменной. По какой-то причине он не попадает на сессию.

РЕШЕНИЕ:

Похоже, мне нужно позвонить Session :: сохранить(). Новая проблема ниже.

НОВАЯ ПРОБЛЕМА:

я обнаружил, что 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(); 
Смежные вопросы