Laravel中route [name]未定义错误求助:表单提交功能异常
Laravel路由报错:route [user.panel.fachecker] not defined
我在开发Laravel表单提交功能(按钮+输入框)时,一直收到「route [user.panel.fachecker] not defined」错误,按钮点击后无跳转,需求是执行对应控制器方法并显示Flash消息。
相关代码
index.blade.php
<form action="{{ route('user.panel.fachecker') }}" method="POST"> <input type="text" name="facode" class="input-user" placeholder="Code here..." /> <button type="submit"><span>Check</span></button> </form>
web.php
Route::post('/', 'PanelController@fachecker')->name('user.panel.fachecker');
PanelController.php
public function fachecker(FARequest $request) { $facode = $request->input('facode'); if ($facode) { Flash::success($facode); return redirect()->back(); } Flash::error(trans('welcome.txt-215')); return redirect()->back(); }
错误日志截图

解决步骤
清除路由缓存
执行命令刷新路由缓存:php artisan route:clearLaravel会缓存路由注册信息,新增或修改路由后需清除缓存才能生效。
适配Laravel版本的路由写法
若使用Laravel 8及以上版本,需调整路由注册方式:use App\Http\Controllers\PanelController; Route::post('/', [PanelController::class, 'fachecker'])->name('user.panel.fachecker');或通过路由组指定命名空间:
Route::namespace('App\Http\Controllers')->group(function () { Route::post('/', 'PanelController@fachecker')->name('user.panel.fachecker'); });确认路由已注册
执行命令查看所有已注册路由:php artisan route:list检查输出列表中是否存在
user.panel.fachecker路由名称,同时验证请求方法(POST)和路径是否匹配。添加CSRF令牌
Laravel默认拦截无CSRF令牌的POST请求,在表单内添加令牌字段:<form action="{{ route('user.panel.fachecker') }}" method="POST"> @csrf <input type="text" name="facode" class="input-user" placeholder="Code here..." /> <button type="submit"><span>Check</span></button> </form>
内容的提问来源于stack exchange,提问作者Morph
相关产品推荐
相关产品推荐

