gpt4 book ai didi

未找到 PHP Laravel 类。如何使用命名空间来解决这个问题?

转载 作者:行者123 更新时间:2023-12-04 17:03:09 27 4
gpt4 key购买 nike

我正在使用 Laravel 框架并有一个以下结构的目录:

models 
Statistic.php

presenters
StatisticPresenter.php

在我的 models/Statistic类,我正在尝试访问 present方法调用 protected 属性,然后引用我的演示者:
protected $presenter = 'presenters\StatisticPresenter';

public function present() {
return new $this->presenter($this);
}

然而,这会返回错误: Class 'presenters\StatisticPresenter' not found .我意识到这是某种命名空间错误,我已经尝试观看一些关于它如何工作的视频,但我根本无法理解它。我已经将我的演示者文件夹添加到我的 composer.json文件。例如,将此添加到我的 Statistic 的顶部模型不起作用:
use presenters\StatisticPresenter;

我怎样才能解决这个问题?

最佳答案

做到以下几点;

  • 在 StatisticPresenter.php 中标记您的命名空间? (在文件“命名空间演示者”的顶部;)
  • 将 PSR-4 类映射添加到您的 Composer
  • {
    "autoload": {
    "psr-4": {
    "presenters\\": "app/presenters/"
    }
    }
    }
  • 运行“composer dump-autoload”一次,你就不需要为再次运行这个命令了。 “主持人”如果您将新类添加到 中,则命名空间“应用程序/演示者/文件夹”
  • 使用“使用演示者/统计演示者”测试您的类(class);
  • 如果您可以访问您的类(class),则无需更改您的代码,您的present() 函数将有效
  • 关于未找到 PHP Laravel 类。如何使用命名空间来解决这个问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27995793/

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