2015-10-07 34 views
0

我们得到的集合后,我们可以通过它通过搜索后:我怎样才能从收集where子句获得所选型号查询已进行

$categories->where('name', $name) 

这是非常简单的,但什么如果我们有一个多层次的类别系统,并且我们希望通过给定的名称找到一个模型,并且我们知道该模型存在于某个地方,但我们不确定它是第一层还是更深层。

我试图用

$categories->where('name', $name)->orHas('children', function() (...)) 

但是这只能在Builder来使用,而不是收藏。 所以问题是,如何通过给定的键和字段从父母和孩子的集合中检索模型,而无需再次对数据库进行排队。

当然是Laravel。

回答

1

使用收集的filter方法:

$filtered = $categories->filter(function ($category) use ($name) { 
    return $category->name == $name || $category->children->contains('name', $name); 
}); 
+0

很好,谢谢 - 这就是我一直在寻找!然而,我得到的父母模型的结果,但它是关系并没有什么大不了的,当我们知道名字的时候抓住一个孩子。不知何故,我错过了这种方法。再次感谢。 –