【问题标题】:Laravel nova tool not working with Class not found errorLaravel nova 工具无法使用 Class not found 错误
【发布时间】:2019-09-22 04:47:26
【问题描述】:

我正在用 laravel nova 创建一个工具。

我先运行了这个命令,

php artisan nova:tool mytools/cachier

然后在我的 mai 应用目录 App\Providers\NovaServiceProvider 我添加了,

use Mytools\Cachier\Cachier;

public function tools()
    {
        return [
            new Cachier(),
        ];

    }

这是我的工具作曲家 json

{
    "name": "mytools/cachier",
    "description": "A Laravel Nova tool.",
    "keywords": [
        "laravel",
        "nova"
    ],
    "license": "MIT",
    "require": {
        "php": ">=7.1.0"
    },
    "autoload": {
        "psr-4": {
            "Mytools\\Cachier\\": "src/"
        }
    },
    "extra": {
        "laravel": {
            "providers": [
                "Mytools\\Cachier\\ToolServiceProvider"
            ]
        }
    },
    "config": {
        "sort-packages": true
    },
    "minimum-stability": "dev",
    "prefer-stable": true
}

但是现在当我尝试访问应用程序时出现此错误。

Symfony\Component\Debug\Exception\FatalThrowableError (E_ERROR) 找不到类“Mytools\Cachier\Cachier”

如果有人能帮忙就好了:'(

【问题讨论】:

    标签: php laravel laravel-5 laravel-nova


    【解决方案1】:

    对于任何在谷歌上搜索这个的人——或者如果你还没有弄清楚的话,我会遇到这个问题,因为我在生成工具时没有运行 composer 或 npm 命令。从项目根目录尝试composer update mytools/cachier

    【讨论】:

    • 感谢您发布此答案,一年后超级有用!
    • 很高兴我的痛苦和磨难能带来好处!
    【解决方案2】:

    检查您导入的namespace

    use Mytools\Cachier\Cachier; // <----
    
    public function tools()
        {
            return [
                new Cachier(),
            ];
    
        }
    

    我认为应该是:

    use Mytools\Cachier; // <----
    
    // ...
    

    PS:另外,检查你的类中定义的namespace 以匹配这个。

    【讨论】:

    • 你跑composer dump-autoload了吗?
    猜你喜欢
    • 2015-02-12
    • 1970-01-01
    • 2011-11-06
    • 1970-01-01
    • 2021-01-25
    • 2023-04-03
    • 2013-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多