On m'a dit que pour accomplir mapplication $ belongsTo à une clé non primaire, je mettrais la clé étrangère à false et définirais les conditions par quelqu'un sur un autre forum (IRC, en fait) . Cependant, je ne pense pas que je le fais correctement. Voici mon code belongsTo de $ Je tentais:
var $belongsTo = array(
'Inventory' => array(
'className' => 'Inventory',
'foreignKey' => false,
'conditions' => array('RentalLineitem.i_num' => 'Inventory.i_num'),
'dependent' => false
)
);
Quand je regarde la requête SQL qui est généré, la clause ON dans la jointure est à la recherche de la valeur de chaîne au lieu de la colonne: `RentalLineitem`.` i_num` = 'Inventory.i_num' au lieu de ce dont j'ai besoin c'est `RentalLineitem`.` `i_num` =` Inventory`. `i_num`.
On m'a dit de changer le "juste changer le schéma de base de données" pour être correct. Toutefois, il s'agit d'une application héritée, la base de données existe déjà depuis 10 ans et d'autres applications utilisent cette base de données. Je dois travailler avec les tables que j'ai, et je ne peux pas changer le schéma.
Comment puis-je associer correctement ces modèles?
Oui, cela ne semble pas être correct. Juste pour que je ne poste aucune hypothèse dans ma réponse, essayez-vous de relier le modèle 'Inventory' au modèle' RentalLineItem'? Je suppose que vous essayez de dire 'Inventory' appartient à' RentalLineItem'? – generalopinion