2017-04-14 20 views
1

我已经创建了产品类别&产品关系的映射表。我想使用下面的代码从集合中获取Product对象。Laravel Collection过滤为父数据

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

       }); 

如果我转储并死亡父母然后我可以看到Product对象,但是当我尝试返回Product时,它显示Category数据。

+0

您是如何映射模型中的关系的?所以你基本上想要获得某些类别的产品,对吧? – Indra

回答

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; 
         });