如何根据多对多相关模型的字段值访问模型的记录

时间:2016-12-21 20:22:40

标签: php laravel laravel-5.3

我正在使用laravel 5.3。有2种型号。

  

作业 [id,title,location]

     

标记 [id,tag_name]。

这两个模型具有many to many的关系。

Job belongstomany Tag

Tag belongstomany Job.

数据透视表是

  

job_tag [job_id,tag_id]。

如何获取与特定标记名称关联的作业记录。

标记:

id.     |     tag_name
--------|--------------------------
1       |          php
--------|--------------------------
2       |          html
--------|--------------------------

工作:

id       |    title               |     location
---------|------------------------|--------------------------
1        |   developer            |      Kochi
---------|------------------------|--------------------------
2        |   designer             |      bangalore
---------|------------------------|--------------------------

Pivot:job_tag:

job_id           |     tag_id
---------------- |-----------------
    1            |       1
-----------------|-----------------
    1            |       2
-----------------|-----------------
    2            |       1
-----------------|-----------------

使用标签名称“php”,我想列出与标签名称“php”有关的所有作业。

2 个答案:

答案 0 :(得分:1)

//$params[tags] contains the data for the search

$jobs = Job::query();
$jobs = Job::whereHas('tags', function ($query) use($params) {
    $query->whereIn('tag_name', $params['tags']);
});

以上代码对我有用...... https://laravel.com/docs/5.3/eloquent-relationships#querying-relationship-existence

答案 1 :(得分:0)