Estoy tratando de ponerme en forma con hasMany autorreferencial bidireccional a través de las relaciones en CakePHP (¡qué bocado!).CakePHP: auto-referencial bidireccional hasMany A través de asociaciones
Estoy trabajando en un sitio web que combine imágenes.
- Las imágenes están asociadas a otras imágenes mediante una "coincidencia" (el modelo de unión).
- Cada partido tiene dos imágenes y almacena la calificación actual y el número total de votos.
- Al ver una imagen, todas sus imágenes relacionadas desde cualquier dirección deberían estar disponibles (a través de sus coincidencias).
Empecé definiendo una relación hasMany a través de un modelo de unión.
Los pictures_matches tabla de unión tiene esta estructura:
id | picture_id | partner_id | rating | total_votes
de mi pareja integrarán asociación de modelo se parece a esto:
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' => ''
)
);
}
Cada imagen tiene que ser capaz de acceder a sus imágenes relacionados de una u otra dirección, pero aquí es donde mi comprensión se desliza. Parece que necesito guardar ambos lados de la relación, pero esto destruye los datos adicionales almacenados en el modelo de unión: con dos entradas de base de datos, la votación podría variar según la dirección.
¿Alguien puede arrojar alguna luz sobre la mejor manera de hacer esto en CakePHP? Estoy bastante confundido.
¿Es posible crear relaciones inversas sobre la marcha?
¿Alguna vez resolvió esto? –
¿Debería className en la sección Partner ser 'Partner'? – khany