我执行以下请求:
$agPoi = $this->Agpois->get($agPoiId, [
'contain' => [
'Agpoititles.Agthemelanguages' => function ($q) use ($languageId) {
return $q->where([
'language_id' => $languageId,
]);
}
]
]);
令人惊讶的是,它只返回agpoititles
个aghtemelanguage
,其中只有一个包含'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}}