Cakephp:如何在没有中间实体的情况下获得第二级条件

时间:2016-02-18 13:48:29

标签: cakephp-3.x

我执行以下请求:

$agPoi = $this->Agpois->get($agPoiId, [
    'contain' => [
        'Agpoititles.Agthemelanguages' => function ($q) use ($languageId) {
            return $q->where([
                'language_id' => $languageId,
            ]);

        }
    ]
]);

令人惊讶的是,它只返回agpoititlesaghtemelanguage,其中只有一个包含'language_id' => $languageId的非空agpoititles对象。
但我对agthemelanguage不包含hasMany对象感兴趣 如何将请求仅修改为我想要的?

修改

Agpois belongsTo Agpoititles
AgpoiTitles hasOne Agthemelanguages
Agthemelanguages Agpoititles Agpoititles

所以我期望得到其agthemelanguage->language_id = $ languageId

_matchingData agPoi

修改2

所以我尝试使用匹配(),如果您注意在$agPoi = $this->Agpois->find() ->contain(['Agpoititles.Agthemelanguages']) ->matching('Agpoititles.Agthemelanguages', function ($q) use ($languageId, $poiId) { return $q->where([ 'Agpois.id' => $poiId, 'language_id' => $languageId ]); } ) ->first(); 中查找结果,它会有效,如文档中所述;)。

{{1}}

0 个答案:

没有答案