1

我正在使用 laravel 4.2。

可以说有这样的课程:

class BShopsController extends ShopsController

为了解决这个问题,我尝试使用名称空间让我们这样说:

namespace app\controllers;

然后它没有找到 ShopsController

所以我补充说

use \ShopsController;

然后我得到错误:

BShopsController 类不存在

我应该首先使用什么命名空间,这样它就不会破坏任何东西?

编辑:

BShopsController 和 ShopsController 在文件夹 Shops

4

2 回答 2

4

由于您的文件位于 Shops 文件夹中,并且我相信 Shops 文件夹位于 app 文件夹中,因此您应该按以下方式命名您的类。

<?php namespace Shops;

class BShopsController extends ShopsController{}

相似地,

<?php namespace Shops;

    class ShopsController{}
于 2014-12-09T12:12:35.133 回答
3

所以在 Shhetri 和这个Using namespaces in 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;

因为 Shops 控制器位于 BaseController 之外的另一个命名空间中并且找不到它。但是是从 BaseController 扩展而来的,所以需要它。

于 2015-01-09T07:10:32.763 回答