Как предотвратить потерю значения сеанса в laravel 5.2 при перенаправлении с любого контроллера на другой контроллер? - PullRequest
0 голосов
/ 05 июля 2018

Я пытаюсь сделать систему входа в систему в laravel 5.2 Я сохраняю данные сессии, используя метод put это мой контроллер входа в систему, где я храню данные сеанса в функции displayHome ()

 <?php
        namespace App\Http\Controllers;
        use Illuminate\Http\Request;
        use App\Http\Requests;
        use App\app_users;
        use Redirect;
        use Session;
        use Crypt;
        class login extends Controller
        {


        function displayHome(){
          $request->session()->put('session_login',array('email'=>'someone@gmail.com','username'=>$'someone'));
         //print_r(session('session_login')); die();
         //`data session successfully stored `
        }
        }

Я уже printr() значение сеанса. Все работает нормально и сессия сохраняется. Но сессия потеряла свое значение, когда я перенаправляю на другой контроллер, вот как я перенаправляю на другой контроллер

return Redirect::to('members');

Участники моего маршрута выглядят как

 Route::group(['module' => 'Members', 'middleware' => ['web'], 'namespace' => 'App\Modules\Members\Controllers'], function() {
        Route::get('members','MembersController@index');
});

MembersController выглядит как

namespace App\Modules\Members\Controllers;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
Use Redirect;
use Session;
class MembersController extends Controller
{
function index(){
//data session is empty 
print_r(session()->get('session_login')); die();
}
}

Я пытаюсь получить данные сеанса внутри индекса fuction () и результат пустой. пожалуйста, дайте мне правильное решение, чтобы решить это?

1 Ответ

0 голосов
/ 05 июля 2018

Вам необходимо использовать метод flash для сохранения данных сеанса между запросами:

$request->session()->flash('session_login', $data);

А затем reflash() и keep доступны для еще большего количества запросов:

$request->session()->reflash();

$request->session()->keep(['session_login']);

Иногда вам может потребоваться сохранить элементы в сеансе только для следующего запроса. Вы можете сделать это, используя метод flash.

Если вам необходимо хранить ваши данные флэш-памяти для еще большего количества запросов, вы можете использовать метод перепрошивки, который сохранит все данные флэш-памяти для дополнительного запроса. Если вам нужно только хранить определенные данные флэш-памяти, вы можете использовать метод keep.

Данные Flash-сеанса

обновление

Убедитесь, что вы добавили \Illuminate\Session\Middleware\StartSession::class в группу промежуточного программного обеспечения web в вашем Kernel.php.

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