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

Laravel搜索API返回404且无法获取对应课程数据问题求助

Laravel搜索API返回404且无法获取对应课程数据问题求助

嗨,看起来你的问题主要出在路由参数和控制器接收逻辑不匹配上,还有可能字段查询的逻辑也搞错了,我帮你一步步梳理解决:

核心问题:路由与控制器参数不匹配

你定义的路由是带有{course_id}URL参数的GET请求,但你的控制器search方法里却尝试从$request->get('data')获取值,这完全对不上。路由里的URL参数需要直接作为方法参数传入控制器,而不是从请求的查询参数里取。

另外看你的描述是“搜索课程id对应的相关课程信息”,你当前代码用where('id', $data)是查询Content的id等于传入值,这大概率不是你要的逻辑,应该是查询Content中关联该课程id的记录(也就是course_id字段匹配)。

修正后的控制器代码

public function search($course_id)
{
    // 如果是查询关联指定course_id的内容,用下面这行
    $contents = Content::where('course_id', $course_id)->get();
    
    // 如果你确实是要查询Content的id等于传入的course_id,保留这行(但逻辑上不太合理)
    // $contents = Content::where('id', $course_id)->get();
    
    return response()->json($contents);
}

404错误的根源

因为控制器方法没有接收{course_id}这个路由参数,Laravel无法正确匹配到这条路由规则,所以返回404。当你访问类似/admin/contentapi/search/123这样的URL时,框架找不到对应参数的方法,就会抛出404错误。

额外排查建议

  • 执行php artisan route:list,确认这条路由是否正确注册,有没有被其他优先级更高的路由覆盖。
  • 清除路由缓存:运行php artisan route:clear,避免缓存的旧路由规则导致问题。
  • 检查Content模型对应的数据库表,确认存在course_id字段(如果用的是关联查询逻辑)。

备注:内容来源于stack exchange,提问作者John Peter

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 09:43:09