使用SQLite数据库时Laravel不保留会话

时间:2018-12-28 12:59:11

标签: laravel sqlite

我将MySQL数据库转换为SQLite,但是现在登录系统不再起作用。我正在使用DATABASE=sqliteSESSION_DRIVER=file。怎么了?

当我键入电子邮件和密码并按Login(登录)时,系统会再次在Login(登录)页面上重定向我,而不会出现任何错误消息。

我尝试多次登录后更改重定向路由,但只有未经身份验证的路由才有效;这是因为Auth::user or auth()->user()未定义的对象。登录进展顺利,因为如果我输入密码打错,系统会告诉我凭据错误。

很明显,我尝试在设置SQLite数据库并且运行良好时进行查询(例如,App\User::first()->name in login.blade.php)。

我尝试还原DB_CONNECTION=mysql,并且所有操作均按预期进行(与以前一样):当我使用电子邮件和密码登录时,系统会将我重定向到仪表板。

我正在Windows 10和SQLite 3.26中使用Laravel 5.7。

编辑 我的.env文件的一部分

APP_NAME=*****
APP_ENV=local
APP_KEY=******
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://localhost

DB_CONNECTION=sqlite
DB_DATABASE=database.sqlite

BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
SESSION_LIFETIME=120
QUEUE_DRIVER=sync

...

SNAPPY_PDF_BIN='C://"Program Files"/wkhtmltopdf/bin/wkhtmltopdf'
SNAPPY_IMG_BIN='C://"Program Files"/wkhtmltopdf/bin/wkhtmltoimage'

SES_KEY=****
SES_SECRET=****

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。 Laravel没有任何问题,问题在于sqlite数据库(文件)。它不能很好地从mysql转换为sqlite。最后,唯一起作用的是您可以找到here的“著名” bash脚本“ mysql2sqlite.sh ”。它只对我有用,数据库为空。对于数据,进行转换时会出错。

我希望我能帮助别人,问候!