php - 从多个表中获取数据 Laravel

标签 php laravel laravel-5.2 laravel-query-builder

我正在尝试在 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_idvote(10)

我如何结合点击次数和交易投票以在同一个查询中返回,以便我可以在我的 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/

相关文章:

php - 如何从 Eloquent 关系中限制选定的列?

laravel-5.2 - Laravel Blade 检查用户角色

php - 如何捕获反序列化异常?

php - php 5.3.8 中的 filter_var

javascript - 导航栏没有在小屏幕上显示我必须使用哪个 Bootstrap 类或 css

Laravel Blade 模板读取注释也用于处理

laravel - 统一后端和前端日期、时间的最佳方法是什么?

php - Laravel-如何检查(SSH)套接字是否有效?

php - 通过比较 varchar 中的所有字母/数字进行不精确搜索。 mysql、php

php - MySQL - 不区分大小写的搜索