我有一个问题表和一个标签表。我想从给定问题的标签中获取所有问题。例如,我可能会将“旅行”、“火车”和“文化”标签附加到给定的问题上。我希望能够获取这三个标签的所有问题。看起来棘手的是,问题和标签关系是多对多,在 Eloquent 中定义为“belongsToMany”。
我考虑过尝试合并问题集合,如下所示:
foreach ($question->tags as $tag) {
if (!isset($related)) {
$related = $tag->questions;
} else {
$related->merge($tag->questions);
}
}
但这似乎不起作用。似乎没有合并任何东西。我的尝试是否正确?另外,在 Eloquent 中是否有更好的方法来获取多对多关系中的一行?
merge 方法返回合并后的集合,它不会改变原始集合,因此您需要执行以下操作
$original = new Collection(['foo']);
$latest = new Collection(['bar']);
$merged = $original->merge($latest); // Contains foo and bar.
将示例应用到您的代码中
$related = new Collection();
foreach ($question->tags as $tag)
{
$related = $related->merge($tag->questions);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)