CakePHP 内で HABTM 関連付けを使用して、同じモデルの複数のレコードを別のモデルの 1 つのレコードに結合しようとしています。
関連付けようとしているモデルは、User と Bet です。ユーザーモデルはかなり標準的ですが、難しいのはベットモデルです. ベット レコードには、特に ID と、user_1_id および user_2_id の列があります。各ベットには 2 人の参加者がいます。
最初は、bet テーブル内の同じレコードにこれら 2 つを格納することは問題ないと考えていました。ユーザー モデルに単純な hasMany 関連付けを使用し、2 つの外部キーがあるため、ファインダー クエリを使用します。
public $hasMany = array(
'Bet' => array(
'className' => 'Bet',
'foreign_key' => false,
'finderQuery' => 'SELECT *
FROM `bets` as `Bet`
WHERE `Bet`.`user_1_id` IN ({$__cakeID__$})
OR `Bet`.`user_2_id` IN ({$__cakeID__$})',
),
しかし、私が言ったように、私はいくつかの問題に遭遇し、関係が一方向にしか機能していないように見えました (つまり、個々の賭けで作業しているときにユーザーの詳細を表示できますが、ユーザーと作業しているときに賭けの詳細を関連付けることができません)。 .
したがって、結合テーブルを使用したHABTM関係が必要になると思いますが、同じモデルの複数のレコードと別のモデルの1つをリンクテーブル。
これは頭が痛いので、外部の視点やアドバイスは本当に役に立ちます、ありがとう!