У меня есть таблица узлов (модель Node
). Я бы хотел, чтобы он был связан с разными типами данных, но только в том случае, если для одного из его полей установлено значение 1
.
Пример:
В моей таблице nodes
есть поле data_article
(tinyint 1
). Я хочу, чтобы узел был $hasMany Article
только в том случае, если это поле равно 1.
Я пробовал это:
public $hasMany = array(
'Article' => array(
'conditions' => array('Node.data_articles' => '1')
),
);
Но я получаю сообщение об ошибке:
Столбец не найден: 1054 Неизвестный столбец «Node.data_articles» в «предложении where»
Поскольку ассоциация выполняет поиск статьи в своем собственном запросе:
SELECT `Article`.`id`, `Article`.`title`, `Article`.`node_id`, ...more fields...
FROM `mydatabase`.`articles` AS `Article`
WHERE `Node`.`data_artiles` = '1'
AND `Article`.`node_id` = ('501991c2-ae30-404a-ae03-2ca44314735d')
Очевидно, что это не сработает, поскольку таблица Node вообще не подключается в этом запросе.
TLDR:
Возможно ли иметь ассоциации или нет на основе поля в основной модели? Если нет, то как еще я могу хранить разные типы данных в нескольких таблицах и не каждый раз запрашивать их все?