繁体   English   中英

找不到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;

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

请执行以下操作;

  • 在StatisticPresenter.php中标记您的名称空间? (在文件“命名空间演示者”的顶部;)
  • 将PSR-4类映射添加到您的作曲家

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

  • 一次运行“ composer dump-autoload”,如果将新类添加到“ app / presenters / folder”,则无需再次为“ presenters”命名空间运行此命令。
  • 使用“使用演示者/ StatisticPresenter”测试您的班级;
  • 如果您可以访问您的课程,则无需更改代码,present()函数将有效

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM