【问题标题】:Laravel custom class not found?未找到 Laravel 自定义类?
【发布时间】:2017-08-24 17:36:52
【问题描述】:

我收到以下错误

“找不到类'Martins\ArtisanGUI\ArtisanGUIServiceProvider'”,

我已经在config/app.php 中写了它,比如Martins\ArtisanGUI\ArtisanGUIServiceProvider::class 并重新检查了namespaces 和作曲家,但我不知道出了什么问题。

【问题讨论】:

  • composer dump-autoload 如果您在更改 composer.json 后没有重新生成自动加载文件
  • @Devon 已经做到了,一直显示同样的错误
  • Pedro,让我知道我的更新答案是否适合您(使用本地 VCS 存储库)

标签: php laravel laravel-5 composer-php provider


【解决方案1】:

您正在编辑包的 Composer 文件,而不是您的项目。 由于该包似乎不是由 composer 安装和管理的,因此您需要让项目的 composer 知道这个包。

您应该能够在项目的 composer.json 文件中添加本地 vcs 存储库:

"repositories": [
    {
        "type": "vcs",
        "url": "packages/martins-74/artisangui"
    }
],
"require": {
    "martins-74/artisangui": "*"
}

这将使您不必在两个 json 文件中复制任何作曲家规则。

【讨论】:

    【解决方案2】:

    您的项目中有两个 composer.json 文件:

    1. 你的 Laravel 项目的根
    2. 在您的包根目录中 (packages/martins-74/artisangui)

    在第一个 composer.json 文件(laravel composer.json)中:

    "psr-4": {
        "App\\": "app/",
        "Martines\\ArtisanGUI\\" : "packages/martins-74/artisangui/src"            
    }
    

    秒 composer.json 文件(你的包 composer.json):

    "psr-4": {
         "Martines\\ArtisanGUI\\": "src",
    }
    

    之后运行composer dump-autoload

    希望这对你有用

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-12
      • 1970-01-01
      • 2013-07-31
      • 1970-01-01
      • 2016-09-27
      • 1970-01-01
      • 2020-02-05
      • 2018-05-03
      相关资源
      最近更新 更多