2016-06-17 2 views
0

У меня проблема с сеансами в Laravel. Я пытаюсь перенаправить страницу и в то же время отправки некоторых переменных сессий, используя with() метод:Пропущенные переменные сеанса при перенаправлении страницы

return Redirect::To('/')->with('foo','bar'); 

Но когда страница появляется, только переменный сеанс, установленные являются _token и locale, «Foo» и «бара 'не появляются. Запуск {!! var_dump(Session::all()); !!} дает:

array(2) { ["_token"]=> string(40) "l5NawtJdHJtanTErsya440UvPQIgqNExiryJIkIO" ["locale"]=> string(2) "se" } 

Сеанс хранящемуся в storage/framework/sessions странно имеют другие переменный набор, такие как url и PHPDEBUGBAR_STACK_DATA, которые не обнаруживаются при перенаправлении.

Теперь вот настоящая твист: она отлично работает при работе на другом компьютере.

Мы протестировали один и тот же репозиторий, тот же код, новую установку laravel, тот же веб-браузер, ту же ОС (Mac) и ту же программу для локального управления сервером (MAMP). На другом компьютере он отлично работает, и на третьем компьютере, но не на моем.

Приложение находится в режиме отладки, и я попытался очистить все кеши в Laravel и в браузере ничего не изменилось.

Кто-нибудь знает, как это можно решить?

ответ

0

По-видимому, в config/session.php переменная domain была установлена ​​в области производства. Поэтому при использовании localhost на моем компьютере cookie laravel_session не может быть прочитан или написан.

Он работал с помощью:

'domain' => null,

0

with() способ использовать для передачи данных на просмотр. Если вы хотите что-то добавить к использованию session()->flash->('foo', 'bar'); сессии (автоматически удалить после следующего запроса) или session()->put('foo', 'bar');

+0

Я попробовал использовать метод пут(), но это, кажется, не работает. Я скорее думаю, что с настройкой что-то не так. Но спасибо за подсказку! –

+0

Каков результат этого 'session() -> put ('foo', 'bar'); dd (session() -> has ('foo')); ' –

+0

В нем говорится« true ». –

Смежные вопросы