Laravel5在子文件夹中的Controller中扩展

时间:2015-04-18 09:50:42

标签: laravel laravel-5 directory controllers

我有文件夹结构app / Http / Controllers / School,里面有一个SchoolController:

namespace School;
class SchoolController extends BaseSchoolController {.....

和BaseSchoolController:

namespace School
class BaseSchoolController extends \BaseController {....

(BaseController在父控制器文件夹中)

 class BaseController extends Controller {...

这会出错:

    FatalErrorException in SchoolController.php line 5: Class 'School\BaseSchoolController' not found

任何想法,谢谢?

虽然看起来很满意这个结构:

  class SchoolController extends \Controller {

1 个答案:

答案 0 :(得分:1)

从我可以看到的,名称空间是错误的。

Laravel 5使用PSR-4,这意味着每个命名空间必须与类文件的文件夹结构(包括供应商)匹配。

因此,对于app/Http/Controllers/School/SchoolController.php,名称空间应设置为:

<?php namespace App\Http\Controllers\School;

不仅仅是

<?php namespace School;

此外,如果应用名称不是默认名称(App),请在名称空间中相应地更改。

举个例子,如果你跑了: php artisan app:name ACME

命名空间应为:

<?php namespace ACME\Http\Controllers\School;

检查其他类app/Http/Controllers/Auth/AuthController.php,了解应该如何完成。