首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用array - Laravel过滤记录

使用array - Laravel过滤记录
EN

Stack Overflow用户
提问于 2019-12-25 14:58:33
回答 1查看 55关注 0票数 0

我有一个集合,我想使用一个数组根据"days_since_last_wallet_transaction“过滤这个集合。例如,我有一个数组$day = array(2,4,6,8)。现在我想得到days_since_last_wallet_transaction在2,4,6,8中的位置记录。我想我不能在where子句中使用"days_since_last_wallet_transaction“。下面是我的问题:

代码语言:javascript
复制
Customer::select(
                'customers.id',
                'customers.wallet_amount',
                'customers.onesignal_id',
                'customers.phone_number',
                'customers.name',
                DB::raw('DATEDIFF(NOW(), max(wallet_transactions.created_at)) as days_since_last_wallet_transaction')
            )
            ->join('wallet_transactions', function ($join){
                $join->on('customers.id', '=', 'wallet_transactions.customer_id')
                ->where('wallet_transactions.amount', '>', 0);
            })
            ->groupBy('customers.id')
            ->where('customers.wallet_amount', '>', 0);

任何帮助都将是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-25 15:16:21

考虑下面的数组:

代码语言:javascript
复制
$days = [2,4,6,8];

创建一个原始查询,如下所示(注意:您也可以在query中编写此行)

代码语言:javascript
复制
$raw_query = '(DATEDIFF(NOW(), max(wallet_transactions.created_at))) IN  ('.implode(',',$days).')';

您的查询

代码语言:javascript
复制
Customer::select(
                'customers.id',
                'customers.wallet_amount',
                'customers.onesignal_id',
                'customers.phone_number',
                'customers.name',
                DB::raw('DATEDIFF(NOW(), max(wallet_transactions.created_at)) as days_since_last_wallet_transaction')
            )
            ->join('wallet_transactions', function ($join){
                $join->on('customers.id', '=', 'wallet_transactions.customer_id')
                ->where('wallet_transactions.amount', '>', 0);
            })
            ->where('customers.wallet_amount', '>', 0)
            ->havingRaw($raw_query)
            ->groupBy('customers.id');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59475982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档