根据多个字段值获取belongsToMany关联

时间:2018-01-17 10:05:54

标签: php associations cakephp-3.0 has-and-belongs-to-many

我有以下情况:

目的地 belongsToMany 属性

// DestinationsTable.php
$this->belongsToMany('Attributes', [
  'foreignKey' => 'destination_id',
  'targetForeignKey' => 'attribute_id',
  'joinTable' => 'destinations_attributes'
]);

// AttributesTable.php
$this->belongsToMany('Destinations', [
  'foreignKey' => 'attribute_id',
  'targetForeignKey' => 'destination_id',
  'joinTable' => 'destinations_attributes'
]);

现在我想检索所有具有(多个)属性选择目的地 我想,这不应该是非常困难的。看起来我不明白......

我尝试了以下操作,但它导致检索到至少具有一个所需属性的所有目标。但是我希望在选择越来越多的属性后减少结果

$attribute_ids = [104, 117];

$query = $this->Destinations->find();

$query->matching('Attributes', function(\Cake\ORM\Query $q) use ($attribute_ids) {
  return $q->where(['Attributes.id IN' => $attribute_ids]);
});

有时候看到前端会更容易理解。这两个属性包含Attributes.id 104117感谢您的帮助!

ads

0 个答案:

没有答案