Laravel 找不到自定义的服务提供者

dul*_*lan 1 service-provider laravel composer-php laravel-4

我在我的项目中使用 Laravel,我创建了一个服务提供者,它位于 中app/services/ToolboxServiceProvider.php,我添加了

'providers' => array(
    ....
    'services\ToolboxServiceProvider',
);
Run Code Online (Sandbox Code Playgroud)

在我的 app.php 配置文件中。现在在加载应用程序时,它说服务提供者找不到,我知道我在该提供者数组中的路径设置有问题,问题是:如何使它正确?提前致谢。

{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"require": {
    "laravel/framework": "4.2.*"
},
"autoload": {
    "classmap": [
        "app/commands",
        "app/controllers",
        "app/models",
        "app/database/migrations",
        "app/database/seeds",
        "app/tests/TestCase.php"
    ]
},
"scripts": {
    "post-install-cmd": [
        "php artisan clear-compiled",
        "php artisan optimize"
    ],
    "post-update-cmd": [
        "php artisan clear-compiled",
        "php artisan optimize"
    ],
    "post-create-project-cmd": [
        "php artisan key:generate"
    ]
},
"config": {
    "preferred-install": "dist"
},
"minimum-stability": "stable"
Run Code Online (Sandbox Code Playgroud)

}

Mar*_*łek 6

您应该添加到您的 autoload=>classmap部分composer.json

"app/services",
Run Code Online (Sandbox Code Playgroud)

所以它应该看起来像:

"autoload": {
    "classmap": [
        "app/commands",
        "app/controllers",
        "app/models",
        "app/database/migrations",
        "app/database/seeds",
        "app/tests/TestCase.php",
        "app/services",
    ]
},
Run Code Online (Sandbox Code Playgroud)

在您的提供者文件中,一开始您应该有:

<?php namespace services;
Run Code Online (Sandbox Code Playgroud)

(小写)。

在这些更改之后,您应该运行:

composer dump-autoload
Run Code Online (Sandbox Code Playgroud)

重建类图