【问题标题】:Alias works in seeder class but not in repository class别名在播种器类中有效,但在存储库类中无效
【发布时间】:2021-02-05 23:02:37
【问题描述】:

我将 LanguagesFacede:class 添加到 Laravel config/app.php 中的别名:

'aliases' => [ // 
    ...
    'Languages' => PeterColes\Languages\LanguagesFacade::class,
]      

在 SystemSettingsSeeder 中,我对以下行没有任何问题:

$languages = Languages::lookup();

在我的存储库类中,出现错误。这意味着它无法理解别名并在同一存储库下搜索:

Class 'App\Repositories\Languages' not found

我试过 composer dump-autoloadphp artisan config:clear,没有解决办法。

我错过了什么?

【问题讨论】:

  • namespacing ...您的 Repository 类具有已定义的命名空间,因此您必须别名/导入不在该命名空间中的要使用的类...播种器未在命名空间,因此它在根命名空间中引用类
  • 谢谢,我通过使用添加类解决了。

标签: php laravel


【解决方案1】:

由于存储库类位于命名空间下,因此此处不适用别名。 (我不知道这个)。

所以我只是添加了以下行:

use PeterColes\Languages\LanguagesFacade AS Languages;

这解决了问题。

【讨论】:

  • 或者只是use Languages;,因为该类是根命名空间的别名
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多