Laravel出现Undefined class constant 'index'错误问题求助
Laravel路由报错Undefined class constant 'index'解决方案
错误原因
你当前的路由写法存在两个问题:
TemplateController::index的语法是尝试访问TemplateController类中名为index的类常量,而非调用该控制器的index方法,你没有定义对应常量自然会触发该报错Route::get()传入了多余的第三个参数/,不符合Laravel路由的定义规范
修复方案
1. 修正路由代码
Laravel 8及以上版本使用如下标准控制器路由写法即可:
<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\TemplateController; Route::get('/', [TemplateController::class, 'index']);
如果是Laravel 8之前的旧版本,可以使用字符串格式的控制器引用写法:
Route::get('/', 'App\Http\Controllers\TemplateController@index');
2. 确认控制器方法存在
请检查app/Http/Controllers/TemplateController.php中已经定义了公开的index方法,示例参考:
<?php namespace App\Http\Controllers; class TemplateController extends Controller { public function index() { // 编写业务逻辑,例如返回视图 return view('welcome'); } }
内容的提问来源于stack exchange,提问作者eugeneprince
相关产品推荐
相关产品推荐

