拉拉维尔·鲁门·梅马卡赫德未找到

2022-08-30 10:37:06

好吧,我刚刚开始使用Lumen,我正在尝试使用Auth,但是调用Auth::check或Auth的任何其他功能。导致以下错误 致命错误:在第 52 行的 vendor\illuminate\cache\MemcachedConnector.php找不到类“Memcached”。我不想使用Memcached以前从未使用过它。

我在.env文件中禁用了它,并将CACHE_DRIVERSESSION_DRIVER设置为数组,但仍然显示相同的错误。

我决定不再使用身份验证,而是手动处理会话/令牌的身份验证,但使中间件启动会话结果出现相同的错误。

$app->middleware([
 // 'Illuminate\Cookie\Middleware\EncryptCookies',
 // 'Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse',
  'Illuminate\Session\Middleware\StartSession',
 // 'Illuminate\View\Middleware\ShareErrorsFromSession',
 // 'Laravel\Lumen\Http\Middleware\VerifyCsrfToken',
]);

如果有人能在这里真正帮助我,我会很高兴

编辑

在框架中深入一点之后,我在方法中的类中硬编码了会话驱动程序名称SessionManagergetSessionConfig

public function getSessionConfig()
{
    $this->setDefaultDriver("cookie");//I added this line
    return $this->app['config']['session'];
}

虽然它有效,但不是做事的好方法。没有配置文件,我相信所有配置都写在.env文件中,但我真的不知道为什么session_driver和cache_driver在.env中更改后默认为memecached,然后运行...流明:(composer dump-autoload

编辑这是我的 .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

我已经在我的引导组件/应用程序中取消了此行注释.php

 Dotenv::load(__DIR__.'/../');

我的数据库配置工作完美,因此.env文件加载得很好。


答案 1

我今天花了3个小时在这个问题上。在本主题中demve帖子的帮助下,我找到了解决方案。很简单!我希望这不会影响我以后的发展。

就这样,在.env文件中:

CACHE_DRIVER=array
SESSION_DRIVER=array
QUEUE_DRIVER=array

好吧,我进行了更新,因为我遇到了有关会话的新问题。实际上,当您设置前面的参数时,您的会话将不会持久,如文档中所述:array - sessions will be stored in a simple PHP array and will not be persisted across requests.

所以我必须改变它,总是在.env中这样一个文件:

SESSION_DRIVER=cookie

有了,我现在可以看到我的会话的全部值var_dump(Session::all());


答案 2

您可能需要重新启动服务器,尤其是在使用 .php artisan serve

Lumen似乎没有根据请求拾取更改。.env

我遇到了完全相同的问题 - 尝试使用文件缓存,但收到有关Memcached的错误 - 重新启动服务器会重新加载文件。.env


推荐