Loading

Laravel框架使用多条件查询的方法

使用when+匿名函数处理多条件的方法:

->when(isset($params['type']), function ($query) use ($params, $myAccountIdList) {
        switch ($params['type']) {
            case 1: // 本人:from/to 均在本人账户中
                $query->whereIn('o.from_account_id', $myAccountIdList)
                    ->whereIn('o.to_account_id', $myAccountIdList);
                break;
            case 2: // 非本人:from 是本人,to 不是本人,且排除 type=4
                $query->whereIn('o.from_account_id', $myAccountIdList)
                    ->whereNotIn('o.to_account_id', $myAccountIdList)
                    ->where('o.type', '<>', 4);
                break;
            case 3: // 外部:from 是本人,且 type=4
                $query->whereIn('o.from_account_id', $myAccountIdList)
                    ->where('o.type', 4);
                break;
        }
    })
->select([
   'o.amount',  'o.from_account_id', 'o.to_account_id', 'o.type', 'o.to_account_bank_number'
])
->paginate($pageSize, ['*'], 'page', $currentPage);
$total = $data->total(); // 总条数
$data  = $data->map(function ($item) use ($countryInfo, $myAccountIdList) {
    $item->add_time      = date('y/m/d H:i', $item->add_time);
});

 

posted @ 2025-04-01 09:51  Carvers  阅读(42)  评论(0)    收藏  举报