我使用laravel 4.2。
比方说,有这样的类:
class BShopsController extends ShopsController
为了解决这个问题,我尝试使用的命名空间可以这样说:
namespace app\controllers;
然后它没有找到ShopsController
所以我想补充
use \ShopsController;
然后我得到的错误:
类BShopsController不存在
命名空间是什么,我应该使用首先,因此它不会破坏任何东西?
编辑:
BShopsController和ShopsController在文件夹商店
当你的文件是商店文件夹内,我相信,商店文件夹是应用程序文件夹内,你应该命名空间类下面的方式。
<?php namespace Shops;
class BShopsController extends ShopsController{}
同样的,
<?php namespace Shops;
class ShopsController{}
因此,与Shhetri的帮助,这在Laravel 4使用命名空间
我没有这样说:
namespace App\Controllers\Shops; class BShopsController extends ShopsController{}
此外,在routes.php文件则需要改变这样的:
Route::controller('shops', 'App\Controllers\Shops\ShopsController');
并在调用action()方法 - 还需要使用命名空间。
还需要运行
composer dump-autoload -o
否则是错误。
此外,在ShopsContrller需要这样的:
use \App\Controllers\BaseController;
因为商店控制器是另一个命名空间比BaseController并不能找到它。 但是从BaseController扩展,所以需要它。