【发布时间】:2015-06-29 13:53:43
【问题描述】:
好的,我刚开始使用 Lumen,我正在尝试使用 Auth,但是调用 Auth::check 或 Auth.. 的任何其他函数会导致以下错误 致命错误:在第 52 行的 vendor\illuminate\cache\MemcachedConnector.php 中找不到类“Memcached”。 我不想用 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 文件 很好。
【问题讨论】:
-
抱歉,您是否已经按照文档步骤进行操作? lumen.laravel.com/docs/authentication
-
和缓存文档? lumen.laravel.com/docs/cache
-
你能插入你的 .env 文件吗?
-
@lorenz 我明确表示我不想使用 memcache,所以我真的不知道它是如何回答我的问题的 + 我没有足够的声誉来投票给你,对不起不是我。
-
您可能需要重新启动服务器,尤其是在您使用
php artisan serve时。我遇到了完全相同的问题 - 尝试使用文件缓存,但收到有关 Memcached 的错误 - 重新启动服务器会重新加载 .env。似乎没有根据请求获取更改。
标签: php laravel memcached lumen