[英]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'。 我尝试了这个,但我仍然遇到了同样的错误(只是使用了不同的类名)。
我的模特:
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;
然后,在控制器中,在使用之前导入它:
<?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');
}
}
我遇到了与上面相同的问题。 在我的情况下,我有以下命名空间:
namespace Modules\XMLApi;
我得到了与上面相同的错误。 当我将命名空间更改为以下内容时:
namespace Modules\XmlApi;
然后运行以下命令:composer dump-autoload
然后它奏效了。
您应该编辑routes.php
文件:
Route::group(array('namespace' => 'Modules\Core\Controllers'), function() {
Route::get('/test', ['uses' => '\Modules\Core\TestController@index']);
});
与命名空间一起使用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.