Laravel 9表单传递$category到控制器为空的问题
解决Laravel中控制器无法接收$category实例的问题
问题根源
你在表单里调用了route('categoryUpdate', $category),但web.php中没有定义对应名称的PUT/PATCH类型路由,导致路由模型绑定无法生效,控制器的$category变量为空。
解决步骤
- 补充更新路由
在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');
核对路由模型绑定规则
确保路由参数名{category}和控制器方法中的变量名$category完全一致,Laravel会自动根据模型主键(默认是id)查询并注入对应的Category实例。确认表单路由调用正确性
你当前表单里的route('categoryUpdate', $category)写法没问题,Laravel会自动把$category的主键值填充到路由参数中,只要路由定义正确就能正常传递。
做完以上操作后,重新提交表单,控制器中的$category就能获取到对应的模型实例了。
内容的提问来源于stack exchange,提问作者سیدعلی سیدمومنی
相关产品推荐
相关产品推荐

