如何使用 `where` 子句在 Laravel 5 中执行连接?

How do I perform a join in Laravel 5 with a `where` clause?

我有一个 table,offers,购买的商品有一个 id。该项目存储在另一个 table、items 中。为了响应 GET 请求,我想 return 包含购买的完整项目对象。我该怎么做?

public function getBuys(Request $request)
{
    $usr_id = $request->input('usrid');

    $buys = Offer::where('buyer_id', '=', $usr_id)->get();
    return response()->json($buys);
}

现在您得到的是用户的所有报价(购买)是否正确?如果您想获得包含所有报价的特定商品(假设您在商品模型中设置了关系):

$item = Item::->with('offers')->find($itemId);

编辑 如果您在 Offer 模型中有此关系:

public function item()
{
    return $this->hasOne('App\Item');
}

你可以这样做:

$buys = Offer::with('item')->where('buyer_id', '=', $usr_id)->get();