gpt4 book ai didi

lumen - 未找到类 'Log'

转载 作者:行者123 更新时间:2023-12-02 03:40:09 28 4
gpt4 key购买 nike

我是 Lumen 和 Laravel 的新手,但我必须使用 Lumen 编写 REST API。我已经设置了 Controller ,但在使用记录器时遇到问题。我已遵循文档:Lumen docs

这是我的 Controller app/Http/Controllers/DocumentsController.php:

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Log;

class DocumentsController extends Controller
{
public function index()
{
Log::info('test');
return response()->json(['result' => 'Oh hey!']);
}
}

如果我运行此命令,我会收到一条错误消息:

DocumentsController.php 第 22 行中出现 FatalErrorException:未找到“Log”类

所以 Log 外观似乎有问题(不太确定它们在 Laravel/Lumen 中是如何工作的)。

但是如果我更改 Log::info() 调用,手动将日志服务从 DI 容器中拉出,那么它就可以工作:

    $app = app();
$app->make('log')->info('test');

关于为什么官方文档中描述的外观方法不起作用有什么想法吗?

最佳答案

哦,当然,在发布这个问题 5 分钟后我就明白了。我在应用程序基类(vendor/laravel/lumen-framework/src/Application.php)中注意到以下别名:

public function withFacades()
{
Facade::setFacadeApplication($this);

if (! static::$aliasesRegistered) {
static::$aliasesRegistered = true;

class_alias('Illuminate\Support\Facades\Auth', 'Auth');
class_alias('Illuminate\Support\Facades\Cache', 'Cache');
class_alias('Illuminate\Support\Facades\DB', 'DB');
class_alias('Illuminate\Support\Facades\Event', 'Event');
class_alias('Illuminate\Support\Facades\Gate', 'Gate');
class_alias('Illuminate\Support\Facades\Log', 'Log');
class_alias('Illuminate\Support\Facades\Queue', 'Queue');
class_alias('Illuminate\Support\Facades\Schema', 'Schema');
class_alias('Illuminate\Support\Facades\URL', 'URL');
class_alias('Illuminate\Support\Facades\Validator', 'Validator');
}
}

但是这个方法从未被调用过,因为在 bootstrap/app.php 中 $this->withFacades() 调用默认被注释掉。

我取消了它的注释,现在它可以工作了。

关于lumen - 未找到类 'Log',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37759276/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com