我正在尝试在 Laravel 中构建一个优惠券网站。每个商家都有自己的优惠/优惠券。我已经能够在他们的特定页面上为商家打印交易/优惠券。
这是我的问题
$deals = DB::table('deals')
-> join ('merchants', 'deals.merchant_id', '=', 'merchants.merchant_id')
-> where ('merchant_url_text', $merchant_url_text)
-> get();
到目前为止一切顺利。
现在这就是它开始变得复杂的地方。
每笔交易还有 2 件与之关联的商品。与交易相关的点击次数和投票数。
点击次数位于名为点击的表格中,该表格记录了网站上的每次点击。点击记录将有一个与之关联的点击 ID。所以我需要计算每笔交易获得的点击次数。
第二部分是选票。对交易的投票存储在 deal_votes
表中。 deal_votes
表有 deal_id
、vote
(1
或 0
)
我如何结合点击次数和交易投票以在同一个查询中返回,以便我可以在我的 View 中显示信息?
最佳答案
您是否为商家、交易、优惠券和点击设置了模型和关系?如果您将 Eloquent 模型与关系一起使用,这是微不足道的,文档在这里:https://laravel.com/docs/5.2/eloquent-relationships
这看起来像:
$merchant = Merchant::where('merchant_url_text', $merchant_url_text)
->with('deals','deals.votes','deals.clicks')
->first();
with()
函数将所有嵌套信息(即查询 join
)添加到单个查询中。
在你看来:
@foreach($merchant->deals as $deal)
Deal: {{$deal->name}}
Clicks: {{count($deal->clicks)}}
Votes: {{$deal->votes->sum('vote')}}
@endforeach
关于php - 从多个表中获取数据 Laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35904942/