我正在使用 laravel 4.2。
假设有这样的类:
class BShopsController extends ShopsController
为了解决这个问题,我尝试使用命名空间,让我们这样说:
namespace app'controllers;
然后它找不到商店控制器
所以我添加
use 'ShopsController;
然后我得到错误:
类 BShops 控制器不存在
我应该首先使用什么命名空间,这样它就不会破坏任何东西?
编辑:
BShops控制器和商店控制器位于文件夹商店中
由于您的文件位于 Shops 文件夹中,并且我相信 Shop 文件夹位于应用程序文件夹中,因此您应该按以下方式为您的类命名。
<?php namespace Shops;
class BShopsController extends ShopsController{}
同样地
<?php namespace Shops;
class ShopsController{}
所以在 Shhetri 的帮助下,这个 在 Laravel 4 中使用命名空间
我这样做了:
namespace App'Controllers'Shops;
class BShopsController extends ShopsController{}
同样在路由中.php则需要更改为以下内容:
Route::controller('shops', 'App'Controllers'Shops'ShopsController');
在哪里调用action()方法 - 也需要使用命名空间。
还需要运行
composer dump-autoload -o
否则是错误。
同样在商店Contrller需要这样做:
use 'App'Controllers'BaseController;
因为 Shop 控制器位于 BaseController 以外的另一个命名空间中,并且找不到它。但是是从BaseController扩展的,所以需要它。