【发布时间】:2015-08-11 21:41:41
【问题描述】:
我有一个问题表和一个标签表。我想从给定问题的标签中获取所有问题。因此,例如,我可能将标签“旅行”、“火车”和“文化”附加到给定问题上。我希望能够获取这三个标签的所有问题。看起来棘手的是问题和标签关系是在 Eloquent 中定义为 belongsToMany 的多对多关系。
我想过尝试合并问题集合如下:
foreach ($question->tags as $tag) {
if (!isset($related)) {
$related = $tag->questions;
} else {
$related->merge($tag->questions);
}
}
但它似乎不起作用。似乎没有合并任何东西。我是否正确地尝试了这个?另外,在 Eloquent 中是否有更好的方法来获取多对多关系中的一行行?
【问题讨论】:
-
您是否查看过有关预加载和 with 方法的文档?使用更好的 eloquent 查询可以轻松解决您的问题。一旦我掌握了计算机,我就会写一个例子,除非有人打败了我。
-
@Luceos
with无济于事。需要whereHas- 就像下面的答案一样。 -
是的,我的错;你是对的
标签: php laravel eloquent laravel-collection