当前,我具有下面的表结构,projects表具有一个General Contact(属于用户中的一个用户),另一个是Technical User(与用户表有很多关系)。我使用了可搜索的程序包,但它只搜索常规联系人/技术联系人,而不同时搜索两者。如何为两个查询设置配置?
项目
-id
-名称
-general_contact(用户表中的一个用户)
-说明Projects_has_tech_users
-projects_id
-users_id用户
-id
-名
-姓氏
-电子邮件
-密码
-角色
这是我在项目模型中设置的可搜索配置。
protected $searchable = [
'columns' => [
'projects.name' => 1,
'users.first_name' => 2,
'users.last_name' => 2,
'projects.description' => 3,
],
'joins' => [
'projects_has_tech_users' => ['projects.id','projects_has_tech_users.projects_id'],
'users' => ['projects_has_tech_users.users_id', 'users.id'],
'users' => ['projects.general_contact', 'users.id']
],
'groupBy'=>'projects.id'
];
答案 0 :(得分:0)
通过给联接表加上别名来获得解决方案
protected $searchable = [
'columns' => [
'projects.name' => 1,
'tech.first_name' => 3,
'tech.last_name' => 3,
'gen.first_name' => 3,
'gen.last_name' => 3,
'projects.description' => 4,
],
'joins' => [
'projects_has_tech_users' => ['projects.id','projects_has_tech_users.projects_id'],
'users as tech' => ['projects_has_tech_users.users_id', 'tech.id'],
'users as gen' => ['projects.general_contact', 'gen.id']
],
'groupBy'=>'projects.id'
];