当我在搜索处理程序中连接两个表时,两个表中有相同的列,我无法访问左表的值例如,如果有两个表user和volunteers,当我编写这样的搜索处理程序时,它们都有id列
$builder->join('users', 'volunteers.user_id', "=", "users.id")
->join('policies','volunteers.policy_id',"=","policies.id")
->where(function($q) use ($whereConditions){
$q->where('users.first_name','like','%'.$whereConditions['OR'][0]['value'].'%');
$q->orWhere('users.last_name','like','%'.$whereConditions['OR'][0]['value'].'%');
$q->orWhere('policies.name','like','%'.$whereConditions['OR'][0]['value'].'%');
$q->orWhere('volunteers.experiences','like','%'.$whereConditions['OR'][0]['value'].'%');
$q->orWhere('volunteers.medical_facility','like','%'.$whereConditions['OR'][0]['value'].'%');
});
当我查询时,它将返回用户ID作为志愿者ID
我想要志愿者ID,但我总是得到用户ID。我希望问题已经清楚了
2条答案
按热度按时间6ss1mwsb1#
我实现了你的问题,问题发生在我身上,但我用
$builder->select('your columns')
解决了它。bakd9h0s2#
若要解决此问题,您需要确保在连接语句中使用正确的列名。如果志愿者表中有一个名为volunteer_id的列,它代表了志愿者的ID,你应该像这样更新你的代码:
在上面的代码中,我假设volunteers_id列存在于volunteers表中,并表示志愿者的ID。如果volunteer_id在数据库模式中不同,请确保将其替换为正确的列名。
通过更新连接条件以使用正确的列名,您应该能够在查询结果中检索志愿者ID而不是用户ID。