Laravel 5 未找到模型命名空间 class

Laravel 5 Model namespace class not found

我正在尝试将我的模型存储在自定义命名空间和目录结构中,如下所示:

我有:

namespace Modules\Core;

use App\Http\Controllers\Controller;

class TestController extends Controller {

    public function index(){
        $user = new User;
        return view('core::test');
    }

}

但我得到:

FatalErrorException in TestController.php line 8:
Class 'Modules\Core\User' not found

反正是错的,所以我认为一定是'Modules\Core\Models\User'。我试过了,但仍然遇到同样的错误(只是 class 名称不同)。

我的模特:

namespace Modules\Core;

use Illuminate\Database\Eloquent\Model as Eloquent;

class User Extends Eloquent {
    protected $table = 'users';
}

如何在 TestController 中访问此模型?


Route::group(array('namespace' => 'Modules\Core\Controllers'), function() {
    Route::get('/test', ['uses' => 'TestController@index']);
});

如果您的控制器存储在 Modules/Core/Controllers,命名空间应该是 namespace Modules\Core\Controllers;

同样,如果模型存储在 Modules/Core/Models,它的命名空间是 namespace Modules\Core\Models;

然后,在controller中,使用前导入:

<?php namespace Modules\Core\Controllers;

use Modules\Core\Models\User;
use App\Http\Controllers\Controller;

class TestController extends Controller {

    public function index(){
        $user = new User;
        return view('core::test');
    }

}

您应该编辑 routes.php 文件:

Route::group(array('namespace' => 'Modules\Core\Controllers'), function() {
    Route::get('/test', ['uses' => '\Modules\Core\TestController@index']);
});

与命名空间一起使用 full

我遇到了和上面一样的问题。在我的例子中,我有以下命名空间:

namespace Modules\XMLApi;

我得到了和上面一样的错误。当我将命名空间更改为以下内容时:

namespace Modules\XmlApi;

然后运行执行以下命令: 作曲家转储自动加载

然后成功了。