我有文件夹结构app/Http/Controllers/School,里面我有一个SchoolController:
namespace School;
class SchoolController extends BaseSchoolController {.....
和 BaseSchoolController:
namespace School
class BaseSchoolController extends BaseController {....
(基本控制器位于父控制器文件夹中)
class BaseController extends Controller {...
这会产生一个错误:
FatalErrorException in SchoolController.php line 5: Class 'SchoolBaseSchoolController' not found
有什么想法,谢谢?
不过似乎对这种结构感到满意:
class SchoolController extends Controller {
从我马上看到的情况来看,命名空间是错误的。
Laravel 5使用PSR-4,这意味着每个命名空间必须与类文件的文件夹结构(包括供应商)匹配。
因此,对于app/Http/Controllers/School/SchoolController.php
,命名空间应设置为:
<?php namespace AppHttpControllersSchool;
不仅仅是
<?php namespace School;
此外,如果应用名称不是默认名称 ( App
),请在命名空间上相应地更改它。
例如,如果您运行: php artisan app:name ACME
然后,命名空间应为:
<?php namespace ACMEHttpControllersSchool;
检查其他类,如 app/Http/Controllers/Auth/AuthController.php
,以了解应该如何完成。