laravel中的Composer dump-autoload似乎无法正常工作

时间:2015-01-28 13:56:18

标签: ubuntu laravel composer-php

我试图自动加载我的新课程,但它没有工作。我发现一个错误,说我的类控制器不存在。我在ubuntu环境中工作。与laravel 4.2

Composer.json

    "psr-0": {
        "Controllers": "app/",
        "Stuffs": "app/"
    }

应用/控制器/ UserController.php

<?php

namespace Controllers;

use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Request;
use Illuminate\Support\Facades\Response;

class UserController extends BaseController
{
    public function index()
    {
        $stuffs = $this->stuffs->findAllForUser($this->user, 12);

        $this->view('user.profile', compact('stuffs'));
    }
}

应用/ routes.php文件

Route::get('user', [ 'as' => 'user.index', 'uses' => 'UserController@index' ]);

我试图这样做以自动加载这些类: composer dump-autoload -o,即使获得sudo许可,但无效。我错过了什么吗?谢谢。

1 个答案:

答案 0 :(得分:2)

您必须在路线中使用完全限定名称引用控制器:

Route::get('user', [ 'as' => 'user.index', 'uses' => 'Controllers\UserController@index' ]);

如果您有许多这些,您还可以使用route group来定义命名空间:

Route::group(array('namespace' => 'Controllers'), function(){
    Route::get('user', [ 'as' => 'user.index', 'uses' => 'UserController@index' ]);
});