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

Laravel存储评论提示Too few arguments to function错误如何解决

问题原因
  • 你使用了Laravel嵌套资源路由articles.comments,该路由的store方法要求必须传递父资源「文章ID」作为参数,你在表单生成路由时没有传入该参数,导致控制器store方法接收不到第二个参数触发参数不足报错。
修复步骤

1. 修改模板表单路由传参

show.blade.php里的表单action需要传入当前文章实例/ID,修改对应代码:

<!-- 改前 -->
<form class="container-fluid" action="{{ route('articles.comments.store')}}" method="post">
<!-- 改后 -->
<form class="container-fluid" action="{{ route('articles.comments.store', $article)}}" method="post">

注:$article是文章详情页默认传入的文章模型实例,Laravel会自动提取ID作为路由参数。

2. (可选优化)控制器参数对齐路由约定

嵌套资源路由默认的父级参数名为article,可以将控制器store方法的参数名对齐,避免后续路由绑定异常:

// 改前
public function store(Request $request, $id) {
// 改后
public function store(Request $request, $article) {
    // 后续用到$id的地方同步改成$article即可
    $data->article_id = $article;

3. (可选修复错误提示)修正提交成功提示

当前控制器里的成功提示写的是「文章發表成功」,和评论功能不符,放开注释的正确跳转即可:

// 注释错误的提示
// return redirect()->route('root')->with('notice', '文章發表成功!');
// 启用正确跳转
return redirect('articles/'. $article)->with('notice', '回覆發表成功!');
额外冗余代码提示

你在web.php中重复定义了两次userhome路由,删除掉带auth:sanctum中间件的那一条即可,避免路由覆盖异常。


内容的提问来源于stack exchange,提问作者Jay Feng

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 04:45:05