Сессия не имеет значения - Laravel 5.6 - PullRequest
0 голосов
/ 18 октября 2019

Я установил значение для сессии в моем контроллере для моего приложения ussd. В контроллере я устанавливаю значения для сессий, как показано ниже. Когда я проверяю значение Log::info(config('session.passcode')); во время case 1, значение устанавливается на pass i.e 234, что является точным. Но когда приложение получает case 2, Log::info(config('session.passcode')) будет знать, что в файле session.php отображается значение по умолчанию.

Почему я не могу удержать значение (234) в случае 2?

   case '1':       
                   $phone = trim($explode[3]);
                   $code = '234'
                   $data = [
                            'passcode' => $pass
                           ];
                  Config::set('session', $data);                                        
                  Log::info(config('session.passcode')); 




 case '2':          
                  Log::info('Here);
                  Log::info(config('session.passcode'));   

Ответы [ 3 ]

0 голосов
/ 18 октября 2019

Попробуйте

case '1':       
$phone = trim($explode[3]);
$code = '234'
$data = [
  'passcode' => $pass
];

Session::put('data', $data);
Session::save();
Log::info(Session::get('data')); 
0 голосов
/ 18 октября 2019

Существует разница между файлом конфигурации session.php [Config::set('session',...)] и фактическим сеансом. Файл конфигурации предназначен только для хранения настроек и фактически не доступен для записи через встроенные изменения.

См. Документацию для правильного использования:
https://laravel.com/docs/6.x/session#using-the-session

Самый простой метод, вероятно, глобальныйПомощник сеанса, session().

// Retrieve a piece of data from the session...
$value = session('key');

// Specifying a default value...
$value = session('key', 'default');

// Store a piece of data in the session...
session(['key' => 'value']);

Обратите внимание, что сеанс записывается только при возврате ответа. Если вы преждевременно завершите работу сценария, изменения сеанса не сохранятся, если это не будет сделано явно.

// force the session changes to be saved
session()->save();
0 голосов
/ 18 октября 2019

Вы должны установить сеанс в laravel как:

case '1':       
   $phone = trim($explode[3]);
   $code = '234'
   $data = [
      'passcode' => $pass
   ];

   Session::put('data', $data);
   Log::info(Session::get('data')); 

И получить переменную сеанса как

case '2':
  Session::get('data');
  Log::info(Session::get('data'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...