doushan5245 2016-06-25 06:10
浏览 1074

Laravel Eloquent使用“with”条件

I have two tables, say Products and Biddings where one product can be bid by many users. Naturally I have two models:

class Product extends Model
{
    public function biddings()
    {
        return $this->hasMany('App\Bidding');
    }
}

class Bidding extends Model
{
    public function product()
    {
        return $this->belongsTo('App\Product');
    }
}

So, say I want to get all products along with the highest priced bidding I did something like this.

$productBidding = DB::table('biddings')
                 ->select('*', DB::raw('max(price) as price'))
                 ->join('products', 'products.id', '=', 'biddings.product_id')
                 ->groupBy('product_id')
                 ->get();

That works well BUT I kinda want to do it Eloquent way. So how do I convert Query Builder way to Eloquent? I am currently on this but do not know how to put the "max" condition in.

$productBidding = Products::with('biddings')
            ->get();
  • 写回答

2条回答 默认 最新

  • doucheng7234 2016-06-25 07:56
    关注
    $productbinding=Bidding:with('product')
                  ->get();
    
    foreach($productbinding as $productbind) 
    {
       echo $productbind->product->name;  // example
    }
    
    评论

报告相同问题?