我正在尝试在Laravel建立一个优惠券网站。每个商家都有自己的优惠券/优惠券。我已经能够在特定页面上为商家打印优惠券/优惠券。
这是我的查询
const one$ = Rx.Observable.from([1, 2, 3, 4, 5, 6]);
const two$ = Rx.Observable.from(['one']);
const three$ = Rx.Observable.from(['a', 'b']);
zipAndContinue(one$, two$, three$)
.subscribe(x => console.log(x));
// >> [ 1, 'one', 'a' ]
// >> [ 2, null, 'b' ]
// >> [ 3, null, null ]
// >> [ 4, null, null ]
// >> [ 5, null, null ]
// >> [ 6, null, null ]
到目前为止一切顺利。
现在这就是它开始变得复杂的地方。
每笔交易还有2件与之相关的部分。点击与交易相关的点数和投票。
点击次数位于一个名为点击的表格中,用于记录网站上的每次点击。点击记录将有一个与之关联的点击ID。因此,我需要获得每笔交易获得的点击次数。
第二部分是投票。交易周围的投票存储在$deals = DB::table('deals')
-> join ('merchants', 'deals.merchant_id', '=', 'merchants.merchant_id')
-> where ('merchant_url_text', $merchant_url_text)
-> get();
表中。 deal_votes
表格包含deal_votes
,deal_id
(vote
或1
)
如何组合点击次数和交易投票以在同一查询中返回,以便我可以在我的视图中显示信息?
答案 0 :(得分:4)
您是否为商家,优惠,优惠券和点击设置了模型和关系?如果您使用具有关系的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