php-从多个表中获取数据Laravel
作者:互联网
我正在尝试在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,票数(1或0)
如何合并点击计数和投票以返回同一查询,以便可以在视图中显示信息?
解决方法:
您是否为商家,交易,优惠券和点击设置了模型和关系?如果您使用具有关系的雄辩模型,这是微不足道的,其文档在这里: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()函数将所有嵌套信息(即查询联接)添加到单个查询中.
您认为:
@foreach($merchant->deals as $deal)
Deal: {{$deal->name}}
Clicks: {{count($deal->clicks)}}
Votes: {{$deal->votes->sum('vote')}}
@endforeach
标签:laravel,laravel-5-2,laravel-query-builder,php 来源: https://codeday.me/bug/20191027/1943019.html