Как заставить Сессию работать в Laravel 5.8 - PullRequest
0 голосов
/ 29 марта 2019

В Laravel 5.8 сеанс не работает.

.env параметр: SESSION_DRIVER=file

Файл контроллера index() Функция:

$request->session()->put('prediction','xyz');

Сначала я устанавливаю сессию, а затем пытаюсь получить ее в другой функции show() в контроллере.

echo $request->session()->get('prediction');exit;

Но это не работает, она пуста.

Kernel.php

<?php

 protected $middlewareGroups = [
    'web' => [
        \App\Http\Middleware\EncryptCookies::class,
        \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
        \Illuminate\Session\Middleware\StartSession::class,
        \Illuminate\View\Middleware\ShareErrorsFromSession::class,
        \App\Http\Middleware\VerifyCsrfToken::class,
        \Illuminate\Routing\Middleware\SubstituteBindings::class,
    ],

    'api' => [
        'throttle:60,1',
        'bindings',
    ],
];

Ответы [ 2 ]

0 голосов
/ 27 мая 2019

не знаю, почему это иногда не работает в Laravel 5.8, но есть решение, как это работает для меня в аналогичной ситуации

<?php
    session()->put('login_user' , $user);
    session()->save();

проблема возникает, когда ваш файл SESSION_DRIVER = в файле .env и файле сеанса не обновляется соответствующим образом.

0 голосов
/ 10 мая 2019

Судя по тому, что вы объясняете, проблема, похоже, связана с $request.Похоже, вы не используете инъекцию зависимостей.Таким образом, в верхней части файла вы можете добавить оператор Request use (use Illuminate\Http\Request;), а в параметрах функции index вы можете пройти через Request $request.Так что все это будет выглядеть как public function index(Request $request).

Если вы использовали внедрение зависимости, но оно все еще не работает, попробуйте удалить переменную $request.Таким образом, результат будет session()->put('someKey', 'SomeValue');

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...