我正在使用Laravel 5.3的查询构建器,尝试添加where子句来查找具有特定标记的文章:
$tag_list = $request->tag_list; // tag_list is an array if (isset($tag_list)) { foreach ($tag_list as $tag_id) { $query = $query->whereHas('tags', function ($query) { $query->where('id', $tag_id); }); } }
当我转储$ tag_list时,我得到......
24
但在循环中,我收到一个错误:
Undefined variable: tag_id
我究竟做错了什么?任何帮助表示赞赏!
因为你在函数上下文中.通过 - 使用关键字传递tag_id变量
$tag_list = $request->tag_list; // tag_list is an array if (isset($tag_list)) { foreach ($tag_list as $tag_id) { $query = $query->whereHas('tags', function ($query) use ($tag_id) { $query->where('id', $tag_id); }); } }