原文地址:https://blog.csdn.net/yang101...
rights_exchange_log表为权益兑换记录,关联了用户id(user_id),需要根据用户手机号来查询用户兑换记录,期望的最终SQL如下:
SELECT
*
FROM
`rights_exchange_log`
LEFT JOIN `fk_member` ON `fk_member`.`id` = `rights_exchange_log`.`member_id`
WHERE
`fk_member`.`tel` = 12312321312
方法1:model中做下关联,controller层像普通变量直接查询过滤即
public function crmMember()
{
return $this->belongsTo(\App\Models\crm\MemberModel::class, 'member_id');
}
$grid->filter(function ($filter){
$filter->like('crmMember.tel', '用户手机号');
});
方法2:手动查询然后拼接条件
$grid->filter(function ($filter){
$filter->where(function ($query) {
$uid_list = \App\Models\halo\MemberModel::query()->where('mobile', 'like', "%{$this->input}%")->select('id')->get()->toArray();
$query->whereIn('member_id', $uid_list);
}, '用户手机号');
});
这种方法可以跨库查询,我实际场景rights_exchange_log在crm库,member在用户中心库,这种方法刚好适用
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。