Sto provando a capirci qualcosa di autoreferenziale bidirezionale in molte relazioni in CakePHP (che boccone!).CakePHP: autoreferenziale bidirezionale hasMany Attraverso le associazioni
Sto lavorando a un sito Web di corrispondenza delle immagini.
- Le immagini sono associate ad altre immagini tramite una "corrispondenza" (il modello di join).
- Ogni partita ha due immagini e memorizza la valutazione corrente e il numero totale di voti.
- Durante la visualizzazione di un'immagine, tutte le immagini correlate da entrambe le direzioni dovrebbero essere disponibili (tramite le corrispondenze).
Ho iniziato definendo un hasMany attraverso la relazione con un modello di join.
I pictures_matches unirsi a tavola ha questa struttura:
id | picture_id | partner_id | rating | total_votes
Mia match aderire all'associazione modello si presenta così:
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' => ''
)
);
}
Ogni immagine deve essere in grado di accedere alle immagini collegate da entrambe le direzioni, ma è qui che la mia presa sta scivolando. Sembra che abbia bisogno di salvare entrambi i lati della relazione, ma questo distrugge i dati extra memorizzati nel modello di join - con due voci db, il voto può variare a seconda della direzione.
Qualcuno può fare luce sul modo migliore per farlo in CakePHP? Sono piuttosto confuso.
È possibile creare le relazioni inverse al volo?
Hai mai capito questo? –
Se className nella sezione Partner è "Partner"? – khany