You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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();
}

错误日志截图

路由未定义错误日志


解决步骤

  1. 清除路由缓存
    执行命令刷新路由缓存:

    php artisan route:clear
    

    Laravel会缓存路由注册信息,新增或修改路由后需清除缓存才能生效。

  2. 适配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');
    });
    
  3. 确认路由已注册
    执行命令查看所有已注册路由:

    php artisan route:list
    

    检查输出列表中是否存在user.panel.fachecker路由名称,同时验证请求方法(POST)和路径是否匹配。

  4. 添加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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 03:24:59