ノードテーブル(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' in'whereclause'
アソシエーションは独自のクエリでArticlefindを実行しているため、次のようになります。
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:
メインモデルのフィールドに基づいて関連付けを行うことはできますか?そうでない場合、他にどのようにして異なるデータ型を複数のテーブルに保持し、毎回それらをクエリする必要がないのですか?