【发布时间】:2017-06-17 05:19:29
【问题描述】:
我刚刚添加了 Laravel 的默认迁移以使用数据库会话。在此之前,我使用的是文件系统。我这样做了:php artisan session:table 然后我添加了我已经在文件会话中使用的所有列。在此之后,我将config/session.php 更改为默认值'driver' => env('SESSION_DRIVER', 'database'),,然后将.env 更改为
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
也许所有这些命令都不是必需的,但我总是喜欢在更改配置时进行清理。
真正的问题
现在我仍在获取会话文件,并且我也将会话放入数据库,但仅填充了 php artisan session:table 命令中的默认 6 列。其他栏目都留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 database laravel session laravel-5.3