laravel - 使用 SQLite 数据库时 Laravel 不保持会话
问题描述
我将我的 MySQL 数据库转换为 SQLite 数据库,但现在登录系统不再工作了。我正在使用DATABASE=sqlite
和SESSION_DRIVER=file
。怎么了?
当我输入我的电子邮件和密码并按登录时,系统会再次将我重定向到登录页面,而不会出现任何错误消息。
多次登录后尝试更改重定向路由,只有未经身份验证的路由有效;这是因为Auth::user or auth()->user()
是未定义的对象。登录进展顺利,因为如果我输入密码错误,系统会告诉我凭据错误。
显然,我尝试在设置 SQLite 数据库并且运行良好时进行查询(App\User::first()->name in login.blade.php
例如)。
我尝试恢复DB_CONNECTION=mysql
并且一切都按预期工作(和以前一样):当我使用我的电子邮件和密码登录时,系统会将我重定向到仪表板。
我在带有 SQLite 3.26 的 Windows 10 中使用 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=****
解决方案
我找到了解决方案。Laravel 没有任何问题,问题是 sqlite 数据库(文件)。它没有很好地从 mysql 转换为 sqlite。最后,唯一有效的是您可以在此处找到的“著名”bash 脚本“ mysql2sqlite.sh ” 。它只适用于我的数据库为空。使用数据时,我在进行转换时遇到错误。
我希望我能帮助别人,问候!
推荐阅读
- python - Python pandas:替换时间序列中的缺失值
- node.js - 如何在 Linux Redhat 服务器上设置 .npmrc 文件
- python - 访问数组内容时检索到标量变量的无效索引错误
- spring-boot - Spring Boot 缓存请求延迟测量
- macos - Mac:错误安装Python会破坏其他代码等吗?
- php - 如何在 Smarty 上创建插件?
- html - 相对创建的按钮和图像会导致为图像创建额外的框架。html
- javascript - 如何使用在其类上创建的方法将从类创建的对象添加到数组
- docker - docker 无法在带有 dind 的容器中启动。启动守护程序时出错:找到 pid 文件,确保 docker 未运行或删除 /var/run/docker.pid
- rspec-rails - Guard 不执行 capybara 测试的规范/功能