cakephp将$belongsTo关联映射到非主键

cakephp将$belongsTo关联映射到非主键,cakephp,cakephp-1.3,Cakephp,Cakephp 1.3,我被告知,为了完成$belongsTo到非主键的映射,我会将foreignKey设置为false,并由另一个论坛(实际上是IRC)上的人设置条件。然而,我认为我做得不对。下面是我尝试的$belongsTo代码: var $belongsTo = array( 'Inventory' => array( 'className' => 'Inventory', 'foreignKey' => false, 'condi

我被告知,为了完成$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查询时,联接中的ON子句正在查找字符串值,而不是列:`RentalInItem`.`I_num`=`Inventory.I_num`而不是我需要的`RentalInItem`.`I_num`=`Inventory`.`I_num`

我被告知将“只需更改数据库模式”更改为正确。但是,这是一个遗留应用程序,该数据库已经存在10年了,还有其他应用程序使用该数据库。我必须使用现有的表,并且不能更改模式


如何正确地关联这些模型?

嗯,这可能不是正确的方法,但我已经遇到了一些类似的问题,我通过以下方式进行了更正:

'conditions' => array(' `RentalLineitem`.`i_num` = `Inventory`.`i_num`'),
希望这有帮助


祝你好运

你可以在这样的条件下编辑:

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

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

是的,这似乎不正确。为了不在我的回答中发表任何假设,您是否试图将
库存
模型与
租赁项目
模型联系起来?我想你是想说,
库存
属于
租赁项目
?这太棒了,它工作得很好。谢谢你的回复。我一直在努力解决这个问题,IRC上的人刚刚抨击了我一个我无法控制的SQL模式。人们应该理解,有时作为开发人员,我们无法控制应用程序的组成部分。