从N:M查询cakephp 3获取字段

时间:2017-07-08 21:41:14

标签: cakephp many-to-many cakephp-3.0

我有两张桌子。第一个名为Users并具有id,name等。第二个名为Field并具有id,name等。这两个表具有N:M关系,这意味着用户可以拥有多个喜欢的字段和一个字段可以有多个粉丝。该关系使第三个表名为UsersFields,并具有id,user_id,field_id。

问题是我需要获取与user_id相关联的字段的名称和ID,换句话说,所有用户喜欢的字段。我有这样的SQL查询。我不确定这是否有效。 例如,如果我有一个$ user_id = 1。

Select F.name, F.id
from Fields F, UsersFields UF
where UF.user_id = $user_id
and F.id = UF.field_id

我是CakePHP的新手,我一直在寻找解决方案,但我无法让它发挥作用。

现在我有类似的东西。

$fields = $this->loadModel('Fields');    
$query = $fields->find()->contain('UsersFields', function ($q) {
        return $q
            ->select(['field_id'])
            ->where(['UsersFields.user_id' => $id]);
        });

但是在视图中,我得到了所有的Fields行。

任何人都可以帮助我。

修改

感谢ndm,我可以使用https://stackoverflow.com/questions/26799094/how-to-filter-by-conditions-for-associated-models

解决问题

0 个答案:

没有答案