Я только что добавил миграцию Laravel по умолчанию для использования сеанса с базой данных. До этого я использовал файловую систему. Я сделал это: php artisan session:table
, затем я добавил весь столбец, который я уже использовал с сеансом файла. После этого я изменил config/session.php
со значением по умолчанию 'driver' => env('SESSION_DRIVER', 'database'),
, а затем я изменил .env
кLaravel 5.3: База данных сеансов работает не так, как ожидалось
BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=database
QUEUE_DRIVER=sync
Так что все любят быть хорошо для меня, я запустить эту команду: artisan admin:clear
. Команда сделать это:
public function handle()
{
Artisan::call('clear-compiled');
Artisan::call('cache:clear');
Artisan::call('config:clear');
Artisan::call('view:clear');
Artisan::call('route:clear');
}
Тогда я запущенной эту команду: composer dumpautoload
и затем php artisan migrate
Возможно определить все эти команды не требуется, но я всегда предпочитаю чистить, когда я делаю изменения в конфигурации.
РЕАЛЬНАЯ ПРОБЛЕМА
Теперь я все еще получаю файлы сеансов, и я также сеанс в базу данных, но только дефолты 6 колонок из команды php artisan session:table
заполнены. Все остальное пребывание в колонке null
.
ЦЕЛЬ
Я хочу использовать базу данных, потому что после некоторого чтения, это способ, чтобы иметь возможность изменять данные в то время как пользователь является Auth(). Я использую сеанс для просмотра. Пример:
@if(Session::get('intellitaux_simple') == 1)
<li class="@if ($coreData['navChild'] == 'simple') active @endif">
<a href="{{ url('/intellitaux/simple') }}">INTELLITAUX SIMPLIFIÉ</a>
</li>
@endif
данные На сессии добавляется в данный момент журнал пользователя при использовании LogSuccesfulLogin.php
события.
Когда-нибудь мне нужно предоставить доступ к новой ссылке на пользователя уже в системе, но я не хочу, чтобы они выходили из системы, а затем входили в систему. Я хочу применить изменения непосредственно в сеансе пользователя, если он активен. Итак, если вы можете помочь мне понять, почему мой сеанс базы данных не работает, я буду признателен.
Если вы считаете, что есть лучший способ достичь своей цели, предложите, я буду признателен!
Спасибо, я просто сделал некоторые редактирования о мигрируют по умолчанию и PHP. Я не знал о DatabaseSessionHandler. Я использую Session :: set («ключ», значение) помещает значение в ключевой столбец таблицы сеанса в строке сеанса пользователя auth. –
'Session :: set ('ключ', значение)' изменяет только поле «полезная нагрузка». –
Итак, добавление всех столбцов для каждого ключа было бесполезным. Спасибо! В этом случае у меня есть два вопроса, связанных с этим сообщением. 1. Почему у меня все еще есть файл сеанса в папке storage/framework/sessions? 2. Я получил несколько строк сеанса для одного и того же user_id в таблице сеансов. Есть ли способ найти, какой пользователь аутентифицировал пользователя? –