我将MySQL数据库转换为SQLite数据库,但现在登录系统不再工作。我正在使用DATABASE=sqlite
和SESSION_DRIVER=file
.怎么了?
当我输入我的电子邮件和密码并按登录时,系统会再次将我重定向到登录页面,没有任何错误消息。
我多次尝试在登录后更改重定向路由,只有未经身份验证的路由才能正常工作;这是因为Auth::user or auth()->user()
是未定义的对象。登录进展顺利,因为如果我在密码中输入错误,系统会告诉我凭据是错误的。
显然,我尝试在设置SQLite数据库并且运行良好时进行查询(例如AppUser::first()->name in login.blade.php
)。
我试图恢复DB_CONNECTION=mysql
并且一切都按预期工作(也像以前一样):当我使用电子邮件和密码登录时,系统会将我重定向到仪表板。
我在Windows 10中使用Laravel 5.7和SQLite 3.26。
编辑我的 .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=****
我找到了解决方案。Laravel没有任何问题,问题是sqlite数据库(文件)。它没有很好地从mysql转换为sqlite。最后,唯一有效的是您可以在此处找到的"著名"bash 脚本"mysql2sqlite.sh"。它只在数据库为空的情况下对我有用。对于数据,我在进行转换时出现错误。
我希望我能帮助别人,问候!