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

Laravel 9表单传递$category到控制器为空的问题

解决Laravel中控制器无法接收$category实例的问题

问题根源

你在表单里调用了route('categoryUpdate', $category),但web.php中没有定义对应名称的PUT/PATCH类型路由,导致路由模型绑定无法生效,控制器的$category变量为空。

解决步骤

  1. 补充更新路由
    在web.php中添加PUT类型的更新路由,确保路由名称为categoryUpdate且包含{category}参数:
// RESTful标准写法
Route::put('/category/{category}', [CategoryController::class, 'update'])->name('categoryUpdate');

// 或者和编辑页面路径匹配的写法
Route::put('/category/edit/{category}', [CategoryController::class, 'update'])->name('categoryUpdate');
  1. 核对路由模型绑定规则
    确保路由参数名{category}和控制器方法中的变量名$category完全一致,Laravel会自动根据模型主键(默认是id)查询并注入对应的Category实例。

  2. 确认表单路由调用正确性
    你当前表单里的route('categoryUpdate', $category)写法没问题,Laravel会自动把$category的主键值填充到路由参数中,只要路由定义正确就能正常传递。

做完以上操作后,重新提交表单,控制器中的$category就能获取到对应的模型实例了。

内容的提问来源于stack exchange,提问作者سیدعلی سیدمومنی

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 18:30:54