繁体   English   中英

如何获取多态关系匹配数据?

[英]How to fetch polymorphic relation matching data?

我有三个表格 Jobseekers、Preferences 和 Industries。 Preferences 表是 Jobseeker 的外部表,Preferences 与 Industries 表具有多态关系。 表结构如下:

求职者
ID:
姓名:
email:
电话:

偏爱
ID:
职称:
地点:
薪水:
求职者ID:

工业品
行业ID:2
工业_id:1
Industryable_type:应用\模型\首选项

我现在可以使用这种技术存储和获取所有数据,但是如何获取基于行业的特定数据。 例如,如果我只想获取那些匹配特定行业 ID 的求职者,或者我想在查询中传递行业 ID 并获取匹配的求职者并仅显示他们的个人资料。 是否可能,请有人帮助我。

$jobseekers = Jobseeker::with(['preference.industries' => function($query) {
        $query->where('industry_id', '=', 7);
    }])->get();

以上代码获取所有行业数组为空的求职者,行业 id 为 7 的求职者具有行业值。 我的目标是只获取行业 id 为 7 或类似的求职者。

这是一个完全的猜测,因为

  1. 您还没有共享表的架构,所以我猜测它们是如何链接的。
  2. 您还没有将它们放入代码笔中,因此我无法测试查询
  3. 我对 laravel 不熟悉,所以只能给你 mysql 查询。
select j.*, p.*, i.*  // select the fields you actually want
from jobseekers j
inner join industryables i on i.industryable_id = j.id
left outer join preference p on p.jobseeker_id = j.id
where i.industry_id = 7

内连接确保您只获取两个表(求职者和行业人士)上都存在的记录

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM