我使用Laravel 5.1和etrepat/baum包在我的Category模型上实现嵌套集。
我有一系列类别,每一个我都得到他们的祖先hierarchy tree这样:
$category->getAncestorsAndSelf()->toHierarchy();
例如,我们说我有4个类别:Category C
,Category D
,Category E
和Category F
。每棵树都是这样的:
我试图将它们合并到一棵树中:
到目前为止,我已经尝试了merge()函数和一个没有运气的自定义递归函数,我总是最终得到重复项。
答案 0 :(得分:1)
您可以:
Baum\Extensions\Eloquent\Collection
创建层次结构use Baum\Extensions\Eloquent\Collection as BaumCollection;
// ...
$categoriesAndAncestors = $category
->flatMap(function ($cat) {
return $cat->getAncestorsAndSelf();
})
->uniqueStrict(function ($cat) {
return $cat->id;
});
$result = BaumCollection::make($categoriesAndAncestors)->toHierarchy();