好的,我刚开始使用 Lumen,我正在尝试使用 Auth,但是调用 Auth::check 或 Auth.. 的任何其他函数会导致以下错误 致命错误:在供应商中找不到类 'Memcached' \illuminate\cache\MemcachedConnector.php 在第 52 行。我不想用 Memcached 以前没用过。
我在.env文件中禁用了它,并将CACHE_DRIVER和SESSION_DRIVER设置为数组,但仍然显示相同的错误。
我决定不再使用 Auth 并使用会话/令牌手动处理我的身份验证,但启用 MiddleWare StartSession 结果到相同的错误。
$app->middleware([
// 'Illuminate\Cookie\Middleware\EncryptCookies',
// 'Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse',
'Illuminate\Session\Middleware\StartSession',
// 'Illuminate\View\Middleware\ShareErrorsFromSession',
// 'Laravel\Lumen\Http\Middleware\VerifyCsrfToken',
]);
如果有人真的可以在这里帮助我,我会很高兴
编辑
在框架中深入一点之后,我SessionManager
在方法内的类中硬编码了会话驱动程序名称getSessionConfig
public function getSessionConfig()
{
$this->setDefaultDriver("cookie");//I added this line
return $this->app['config']['session'];
}
它虽然有效,但不是一种很好的做事方式。没有配置文件,我相信所有配置都写在.env文件中,但我真的不知道为什么 session_driver 和 cache_driver 被默认为 memecached 即使在 .env 中更改它然后运行composer dump-autoload
... Lumen :(
编辑 这是我的.env文件
APP_ENV=local
APP_DEBUG=true
APP_KEY=SomeRandomKey!!!
APP_LOCALE=en
APP_FALLBACK_LOCALE=en
DB_CONNECTION=mysql
DB_HOST=localhost
DB_DATABASE=test
DB_USERNAME=root
DB_PASSWORD=
CACHE_DRIVER=array
SESSION_DRIVER=cookie
QUEUE_DRIVER=database
我的 bootsrap/app.php 中已经取消了这一行的注释
Dotenv::load(__DIR__.'/../');
我的数据库配置工作得很好,所以 .env 文件加载得很好。