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

Laravel路由未定义问题:LoginController自定义checkIn函数路由报错

解决Laravel路由未定义错误(Route [backsite.login.checkIn] not defined)

问题根源

你的路由没有显式设置名称,虽然路由组配置了as => 'backsite.'的前缀,但单独的路由未指定名称,Laravel无法自动生成backsite.login.checkIn这个路由标识。另外,<button>标签本身不支持href属性,点击不会触发跳转,这也是需要修正的点。

解决方案

1. 给路由添加显式名称

修改web.php中的路由配置,为checkIn和checkOut路由添加name()方法,结合组前缀生成完整路由名:

Route::group(['prefix' => 'backsite', 'as' => 'backsite.', 'middleware' => ['auth:sanctum', 'verified']], function(){
   // 生成路由名:backsite.login.checkIn
   Route::get('/login/checkIn', [LoginController::class, 'checkIn'])->name('login.checkIn');
   // 生成路由名:backsite.login.checkOut(需确保控制器已定义checkOut方法)
   Route::get('/login/checkOut', [LoginController::class, 'checkOut'])->name('login.checkOut');
});

2. 修正按钮跳转方式

<button>标签不支持href属性,改用<a>标签包裹按钮样式实现跳转:

<a href="{{ route('backsite.login.checkIn') }}" class="btn btn-primary btn-min-width mr-1 mb-1">CheckIn</a>
<a href="{{ route('backsite.login.checkOut') }}" class="btn btn-info btn-min-width mr-1 mb-1">CheckOut</a>

3. 验证路由配置

执行Artisan命令查看所有已命名路由,确认目标路由存在:

php artisan route:list

如果列表中能找到backsite.login.checkIn,说明配置生效。

额外注意事项

  • 确保web.php顶部已正确引入控制器:
    use App\Http\Controllers\Backsite\LoginController;
    
  • 若之前生成过路由缓存,需清除缓存:
    php artisan route:clear
    

内容的提问来源于stack exchange,提问作者Timotius Hadi Pratama

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 02:58:06