Laravel multiple hasMany

时间:2016-01-05 18:07:12

标签: laravel relationship

我想使用多个hasMany和belongsTo,子类别使用两个函数,onece用于返回产品,另一个用于返回带有orderBy条件的产品。我怎么能这样做????

class Category extends Eloquent{
   public function product(){
      return $this->hasMany('Product');  
   }
   public function product_ordered(){
      return $this->hasMany('product')->orderBy('updated_at','DESC');
   }
}

和产品文件:

class Product extends Eloquent{
   public function Category(){
      return $this->belongsTo('category');
   }
}

我想在不同的视图中使用它们

查看1:

@foreach($category->product_ordered as $x){
   ...
}

视图2:

@foreach($category->product as $x){
   ...
}

非常感谢你......

1 个答案:

答案 0 :(得分:0)

您不需要两次定义关系,您可以创建一个访问第一个关系的方法,然后根据您的需要对其进行排序。

class Category extends Eloquent
{
   public function product(){
      return $this->hasMany('Product');  
   }

   public function product_ordered(){
      return $this->product->sortByDesc('updatedAt');
   }

}