我正在使用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() 函数将是有效的