У меня возникли некоторые проблемы с использованием этой старой платформы, которой мне пришлось управлять.
У меня есть эти таблицы:
- GROUP -> HAS MANY -> MONITOR
- MONITOR -> HAS MANY -> [СОБЫТИЯ, ЗОНА]
- MONITOR -> HAS_AND_BELONGS_TO_MANY -> GROUP
Для отношений GROUP -> MONITOR, соединительные таблицы были созданы Cake под названием GROUP_MONITOR.
Это конфигурация HasMany для модели группы:
'Monitor' => array(
'className' => 'Monitor',
'joinTable' => 'Groups_Monitors',
'foreignKey' => 'GroupId',
'associationForeignKey' => 'MonitorId',
ВОПРОС 1:
Я пытаюсь получить все группы со всеми связанными мониторами. Я нашел рекурсивный ключ, который позволяет go глубоко в отношениях:
$all_groups = $this->Group->find('all', array('recursive' => 1));
Я получил эту ошибку:
Столбец не найден: 1054 Неизвестный столбец 'Monitor.GroupId' в «списке полей» «
Похоже, что Cake не использует таблицу« Groups_Monitors », а ищет groupId в таблице монитора;
ВОПРОС 2:
Пытаясь получить группы, запрашивающие мониторы, с рекурсивной единицей, я правильно получил все группы, но также и все другие отношения монитора HasMany.
$all_monitors = $this->Monitor->find('all',array("recursive" => 1));
Возможно ли исключить некоторые отношения HasMany при поиске иметь уменьшенный объем данных?