我创建了一个简单的控制器并定义了一个函数。但是当我运行它时,它返回一个控制器不存在的错误。
在我的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不存在
答案 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');
}
}