我被告知要完成将$ belongsTo映射到非主键,我会将foreignKey设置为false并在另一个论坛上设置条件(实际上是IRC)。但是,我不认为我这样做是正确的。下面是我尝试的$ belongsTo代码:
var $belongsTo = array(
'Inventory' => array(
'className' => 'Inventory',
'foreignKey' => false,
'conditions' => array('RentalLineitem.i_num' => 'Inventory.i_num'),
'dependent' => false
)
);
当我查看正在生成的SQL查询时,JOIN中的ON子句正在查找字符串值而不是列:`RentalLineitem` .i_num` ='Inventory.i_num'而不是我需要的内容是`RentalLineitem` .i_num` =`库存`.i_num`。
我被告知要更改“只是更改数据库架构”是正确的。但是,这是一个遗留应用程序,数据库已经存在了10年,还有其他应用程序使用此数据库。我必须使用我的表,我无法更改架构。
如何正确关联这些模型?
答案 0 :(得分:12)
嗯,这可能不是正确的方法,但我已经遇到了一些类似的问题,我通过做类似的事情来纠正它:
'conditions' => array(' `RentalLineitem`.`i_num` = `Inventory`.`i_num`'),
希望这有帮助,
祝你好运
答案 1 :(得分:0)
您只需在以下条件下进行编辑:
'conditions' => array(
'RentalLineitem.i_num = Inventory.i_num',
),
在我的情况下,它正常工作。