как получить результат CakePHP «многие ко многим» - PullRequest
1 голос
/ 24 марта 2011

У меня есть отношение "многие ко многим" между изображениями моделей и единицами измерения с использованием таблицы соединений images_units.

Как я могу перевести этот запрос в функцию cakePHP find ()?

SELECT * FROM Image, Units, images_units WHERE images_units.unit_id = 29;

Сейчас я пытаюсь найти () в Image-> find ('all', $ params);без удачи.

Ответы [ 2 ]

1 голос
/ 24 марта 2011

Прямо из Руководства CakePHP:

$this->Image->bindModel(array('hasOne' => array('ImagesUnit')));
$this->Image->find('all', array('fields' => array('Image.*'),'conditions' => array('ImagesUnit.unit_id' => 29)));

Конечно, вам необходимо определить ассоциацию HABTM в модели. См. Весь раздел HABTM , чтобы узнать, как его использовать.

0 голосов
/ 24 марта 2011

В вашей модели изображения добавьте следующий код:

$hasAndBelongsToMany = 'Unit';

find() в вашем Images контроллере должен выглядеть так:

$this->Image->find('all', array('conditions'=>array('Unit.id'=>29)));

Все еще не совсем уверенэто то, что вы ищете, но я думаю, что это правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...