gpt4 book ai didi

php - 如何合并两个 Eloquent 集合?

转载 作者:IT王子 更新时间:2023-10-29 00:39:18 25 4
gpt4 key购买 nike

我有一个问题表和一个标签表。我想从给定问题的标签中获取所有问题。因此,例如,我可能会将标签“旅行”、“火车”和“文化”附加到给定问题上。我希望能够获取这三个标签的所有问题。看起来棘手的是问题和标签关系是在 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);
}

关于php - 如何合并两个 Eloquent 集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30522528/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com