cakephp映射$ belongsTo关联到非主键

时间:2011-06-07 15:39:20

标签: cakephp cakephp-1.3

我被告知要完成将$ 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年,还有其他应用程序使用此数据库。我必须使用我的表,我无法更改架构。

如何正确关联这些模型?

2 个答案:

答案 0 :(得分:12)

嗯,这可能不是正确的方法,但我已经遇到了一些类似的问题,我通过做类似的事情来纠正它:

'conditions' => array(' `RentalLineitem`.`i_num` = `Inventory`.`i_num`'),

希望这有帮助,

祝你好运

答案 1 :(得分:0)

您只需在以下条件下进行编辑:

'conditions' => array(
  'RentalLineitem.i_num = Inventory.i_num',
),

在我的情况下,它正常工作。