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
将不胜感激任何类型的指针。
最佳答案
我相信你没有包含完整的命名空间。
确保在 BaseController 中有:
namespace App\Http\Controllers;
并在
HomeController
确保您正在使用:use App\Http\Controllers\BaseController;
所有这些 Controller 都应该位于
app/Http/Controllers
目录。如果您确定您有有效的目录和命名空间,请运行
composer dump-autoload
在控制台中
关于php - Laravel 5.5 - 未找到类自定义 BaseController 但存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47380843/