找不到 PHP laravel 类.如何使用命名空间来解决此问题


PHP laravel class not found. How can I use namespaces to fix this?

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

models 
  Statistic.php
presenters
  StatisticPresenter.php

在我的models/Statistic类中,我正在尝试访问一个present方法,该方法调用一个受保护的属性,然后引用我的演示器:

protected $presenter = 'presenters'StatisticPresenter';
public function present() {
    return new $this->presenter($this); 
}

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

use presenters'StatisticPresenter;

我该如何解决这个问题?

执行以下操作;

  • 在统计演示器中标记命名空间.php ?(在文件"命名空间表示者"的顶部;
  • 将 PSR-4 类映射添加到作曲家

{ "autoload": { "psr-4": { "presenters''": "app/presenters/" } } }

    运行"
  • 作曲家转储自动加载"一次,如果将新类添加到"应用程序/演示者/文件夹"中,则无需再次为"演示者"命名空间运行此命令
  • 使用
  • "使用演示者/统计演示者"测试您的类;
  • 如果你可以访问你的类,你不需要改变你的代码,你的 present() 函数将是有效的