原文地址: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 在用户核心库,这种办法刚好实用