在 laravel 5 中找不到类控制器
Posted
技术标签:
【中文标题】在 laravel 5 中找不到类控制器【英文标题】:Class Controller not found in laravel 5 【发布时间】:2016-02-16 03:14:01 【问题描述】:所以我是 laravel 的新手,只是在尝试一些代码来清除基础知识,但是在创建一个新的控制器来处理路由之后。它抛出了一个致命的异常,说找不到类“控制器”!
(controller.php在同一目录下)
controller.php 代码是默认的
<?php
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
abstract class Controller extends BaseController
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
这是我的 PagesController.php 代码
<?php
class PagesController extends Controller
public function home()
$name = 'Yeah!';
return View::make('welcome')->with('name',$name);
这是 route.php 代码
<?php
Route::get('/','PagesController@home');
welcome.blade.php 代码是默认代码,除了它显示变量 $name 而不是 laravel 5。 我哪里错了?
【问题讨论】:
确保你的控制器也被命名空间 【参考方案1】:当您引用 extends Controller
之类的类时,PHP 会在您的 当前命名空间 中搜索该类。
在这种情况下,这是一个全局命名空间。但是Controller
类显然不存在于全局命名空间中,而是存在于App\Http\Controllers
中。
你需要在PagesController.php
的顶部指定命名空间:
namespace App\Http\Controllers;
【讨论】:
我试过了,控制器工作了,但现在命名空间是控制器目录,我得到一个错误视图没有找到。任何其他选项 @gospelslide 您可以将use View;
添加到控制器顶部或使用别名view
像这样:return view('welcome')->with('name', $name);
【参考方案2】:
您需要为 Controller
类指定命名空间:
class PagesController extends \App\Http\Controllers\Controller
否则Controller
会在默认根命名空间\
中查找,但它并不存在。
【讨论】:
【参考方案3】:我的问题是与扩展控制器的类中的类名不同,名称应该相同
【讨论】:
【参考方案4】:如果您要在具有不同命名空间的子文件夹中创建控制器,请在您的控制器文件上使用它:
use App\Http\Controllers\Controller;
【讨论】:
以上是关于在 laravel 5 中找不到类控制器的主要内容,如果未能解决你的问题,请参考以下文章
在 laravel 5.4 中找不到类“Illuminate\Foundation\Application”