У меня есть одно сомнение, как это решить. У меня есть две таблицы, свойства и изображения с отношением Has Many. С одним свойством может быть связано 0,1 или более изображений. Я хочу искать свойства, которые связаны более чем с 1 изображением. Я пробовал с:
$propertiesExclusive = $this->Properties->find('all')->contain( [ 'PropertyTags',
'ImagesAffiliates' => function($e){
$e->group([ 'ImagesAffiliates.id HAVING (COUNT(ImagesAffiliates.id) > 1 )' ]);
return $e;
}])
->order(['id' => 'DESC'])->where(['exclusive' => 1])->where($defaultWhere)->limit(7)->all();
Идея состоит в том, что если свойство не имеет изображений или имеет только одно, мы его не получим.
Я пробовал в нескольких формах, но никак.
ImagesAffiliates
(и группировка поProperties
, я полагаю). Если у вас есть какие-либо дополнительные требования, кроме описанных/показанных в настоящее время, пожалуйста, обновите свой вопрос, чтобы отразить это. - person ndm   schedule 23.11.2017SELECT
(только), в этом случае вам нужно будет добавить условиеHAVING
с помощью методаQuery::having()
а>. - person ndm   schedule 23.11.2017