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);
});
本文来自博客园,作者:Carvers,转载请注明原文链接:https://www.cnblogs.com/carver/articles/18803540

浙公网安备 33010602011771号