Laravel Collection过滤为父数据

时间:2017-04-14 10:08:19

标签: laravel

我创建了产品和关系之间关系的地图表产品类别。我想使用下面的代码从集合中获取Product对象。

return  $collection->products->product_categories()->get()->filter(function($item) use ($itemIds)
                {
                    if(isset($item->pivot->parent->id))
                    {   
                        return $item->pivot->parent;    
                    }

                });

如果我转储并死父,那么我可以看到Product对象,但当我尝试返回Product时,它会显示Category数据。

1 个答案:

答案 0 :(得分:0)

你快到了。您只需要从类别中返回产品数据。假设您的代码有效,您只需映射集合以从枢轴返回父代。

    return  $collection->products->product_categories()->get()->filter(function($item) use ($itemIds)
                        {
                            if(isset($item->pivot->parent->id))
                            {   
                                return $item->pivot->parent;    
                            }

                        })->map(function($item){ 
                            return $item->pivot->parent; 
                        });