Laravel 5.5 - Class 未找到自定义 BaseController 但存在

Laravel 5.5 - Class Custom BaseController not found but exists

Laravel 5.5 自定义 BaseController 尽管存在,但未找到。已经检查了 Whosebug 上关于未找到 BaseController 的其他问题,但它们指的是默认值 BaseController,这与我的情况不同。

这是我的实现

Controller.php

use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as CheckController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;

class Controller extends CheckController
{
    use AuthorizesRequests, DispatchesJobs, ValidatesRequests;


}

自定义基础控制器(基础Controller.php)

use App\Http\Controllers\Controller;

class BaseController extends Controller
{

    /**
     * Setup the layout used by the controller.
     *
     * @return void
     */
    public $data = array();

    public function __construct()
    {
        if (Sentinel::check()) {
            // User is not logged in, or is not activated
            $this->data['admin'] = Sentinel::getUser();
        }
    }

    protected function setupLayout()
    {
        if (!is_null($this->layout)) {
            $this->layout = View::make($this->layout);
        }
    }

}

将名为 HomeCtontroller 的 class 扩展为自定义 BaseController

class HomeController extends BaseController {

    protected $layout = 'master';

    public function main()
    {
         ...
    }

}

然后报如下错误

Symfony \ Component \ Debug \ Exception \ FatalErrorException (E_UNKNOWN)
Class 'BaseController' not found

不胜感激。

我相信您没有包含完整的命名空间。

确保在 BaseController 中你有:

namespace App\Http\Controllers;

并在 HomeController 中确保您使用的是:

use App\Http\Controllers\BaseController;

所有这些控制器都应位于 app/Http/Controllers 目录中。

如果您确定在控制台

中有有效的目录和命名空间运行 composer dump-autoload