我正在使用 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);
});
}
}
关于PHP foreach - undefined variable ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41793283/