编程语言
首页 > 编程语言> > php-从多个表中获取数据Laravel

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