【问题标题】:Laravel 5.5 - Class Custom BaseController not found but existsLaravel 5.5 - 类自定义 BaseController 未找到但存在
【发布时间】:2018-05-03 00:18:27
【问题描述】:

Laravel 5.5 自定义 BaseController 未找到,即使它存在。已经检查了StackOverflow 上关于未找到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;


}

自定义 BaseController (BaseController.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 的类扩展为自定义 BaseController

class HomeController extends BaseController {

    protected $layout = 'master';

    public function main()
    {
         ...
    }

}

然后它给出以下错误

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

不胜感激。

【问题讨论】:

    标签: php laravel laravel-5 namespaces laravel-5.5


    【解决方案1】:

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

    确保在 BaseController 中有:

    namespace App\Http\Controllers;
    

    并在HomeController 中确保您正在使用:

    use App\Http\Controllers\BaseController;
    

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

    如果您确定您有有效的目录和命名空间,请在控制台中运行 composer dump-autoload

    【讨论】:

    • 我认为他需要做的就是放入命名空间。您不需要从同一个命名空间导入。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-17
    • 2016-03-12
    • 1970-01-01
    • 2013-07-31
    • 1970-01-01
    • 2018-04-06
    • 2018-12-27
    相关资源
    最近更新 更多