私はCakePHPのリレーションシップを通して、双方向の自己参照hasManyに頭を奪おうとしています。CakePHP:双方向自己参照hasManyスルーアソシエーション
私は写真マッチングウェブサイトに取り組んでいます。
- ピクチャは、「一致」(結合モデル)を介して他のピクチャに関連付けられます。
- 各試合には2枚の写真があり、現在の評価と総投票数が保存されています。
- 画像を見るときは、どちらの方向からも関連するすべての画像が(一致するものを介して)利用可能になるはずです。
私は、hasManyという関係を結合モデルと定義することから始めました。
pictures_matchesテーブルがこのような構造を持って参加する:
id | picture_id | partner_id | rating | total_votes
私のマッチがモデル協会に参加し、次のようになります。
class PictureMatch extends AppModel {
...
public $belongsTo = array(
'Picture' => array(
'className' => 'Picture',
'foreignKey' => 'picture_id',
'conditions' => '',
'fields' => '',
'order' => ''
),
'Partner' => array(
'className' => 'Picture',
'foreignKey' => 'partner_id',
'conditions' => '',
'fields' => '',
'order' => ''
)
);
}
各画像は、どちらの方向からその関連の画像にアクセスできるようにする必要があり、しかし、これは私の把握が滑っている場所です。 関係の両側を保存する必要があるように見えますが、これにより結合モデルに格納されている余分なデータが破棄されます.2つのdbエントリを使用すると、投票は方向によって異なることがあります。
誰かがCakePHPでこれを行うための最善の方法を説明することはできますか?私はむしろ混乱している。
オンザフライで逆の関係を作成することは可能ですか?
あなたはこれを理解しましたか? –
パートナーセクションのclassNameを「パートナー」にする必要がありますか? – khany