У меня есть несколько таблиц, которые связаны (hasMany), как дерево: 1 -> 2 -> 3. Есть несколько записей в таблице 1, таблица 2 и 3.CakePHP вложенных ассоциаций, пустые записи ошибка
Я использую CakePHP для извлечения всех данных из таблицы 1 с подключенной таблицей 2, которая связана с таблицей 3. Однако в немногих записях в таблице 1 нет связанных записей в таблице 2. То же самое в таблице 2, некоторые записи не имеют подключенных записей в таблице 3.
Для второй ситуации скрипты работают нормально. Я получаю что-то вроде этого: 1 -> 2 -> empty. Но в первой ситуации, когда данные выглядят примерно так: 1-> empty -> empty, я получаю ошибки, что таблица 3 не существует.
Есть ли какие-либо решения, позволяющие пропустить эти ошибки и получить таблицу форматированных ассоциаций в качестве возврата к моему запросу?
$options = array(
'conditions' => array(
'Table1.id' => $table1_ids
),
'contain' => array(
'Table2' => array(
'conditions' => array(
'id' => $table2_ids
),
'Table3' => array(
'conditions' => array(
'date_end >' => date('Y-m-d H:i:s')
),
'fields' => array('id'),
),
'fields' => array()
),
),
'fields' => array('id', 'name')
);
$this->Table1->recursive = -1;
$table1 = $this->Table1->find('all', $options);
трудно узнать, не просматривая код, который фактически выполняет скрипт. – Nunser
Как вы получаете эти записи? можете ли вы поделиться кодом? –
Я добавил код. Решение для этого может быть для каждой записи в Таблице 2, которую я должен извлечь для записей в Таблице 3. Однако это означает много запросов к базе данных ... – VIPPER