Laravel:类控制器不存在

时间:2018-02-05 07:22:10

标签: laravel laravel-5.5

我创建了一个简单的控制器并定义了一个函数。但是当我运行它时,它返回一个控制器不存在的错误。

在我的web.php中指定路线。

<?php
  Route::get('/', function () { return view('front.welcome'); });
  Route::get('plan','PlanController@PlanActivity')->name('plan');

在我的控制器的另一边,我的代码:

<?php
 namespace App\Http\Controllers\Front;
 use App\Http\Controllers\Controller as BaseController;
 use Illuminate\Http\Request;

class PlanController extends Controller {

public function PlanActivity()
{
    dd("hello");
    //return view('admin.index');
}
}
  

此控制器在App \ Http \ Controllers \ Front - 前端文件夹

上创建

错误:

  

ReflectionException(-1)   类App \ Http \ Controllers \ PlanController不存在

2 个答案:

答案 0 :(得分:5)

Front部分添加到:

Route::get('plan', 'Front\PlanController@PlanActivity')->name('plan');

另外,将控制器的顶部更改为:

namespace App\Http\Controllers\Front;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;

并运行composer du

来自the docs

  

默认情况下,RouteServiceProvider包含命名空间组中的路由文件,允许您注册控制器路由,而无需指定完整的App\Http\Controllers命名空间前缀。因此,您只需要指定基础App\Http\Controllers命名空间之后的命名空间部分。

答案 1 :(得分:0)

首先在定义路径时,请确保使用控制器的正确路径。正确的是:

Route::get('plan','Front/PlanController@PlanActivity')->name('plan');

其次,您已将Controller类导入为BaseController。所以你应该扩展BaseController而不是Controller

class PlanController extends BaseController {

public function PlanActivity()
{
    dd("hello");
    //return view('admin.index');
}
}