我有一个问题表和一个标签表。我想从给定问题的标签中获取所有问题。例如,给定问题可能附有标签“旅行”,“火车”和“文化”。我想能够获取这三个标签的所有问题。看起来棘手的问题是,问题和标签之间的关系是Many-To-Many,在Eloquent中定义为belongsToMany。
我考虑尝试合并以下问题集合:
foreach ($question->tags as $tag) {
if (!isset($related)) {
$related = $tag->questions;
} else {
$related->merge($tag->questions);
}
}
虽然看起来它不起作用。似乎没有合并任何东西。我这样尝试是正确的吗?此外,在Eloquent中获取多对多关系中的一行行数据也许有更好的方法吗?
with
不起作用。需要使用whereHas
- 就像下面的答案中所示。 - Jarek Tkaczyk