Cakephp具有多个不是主键的外键

时间:2015-06-09 13:58:12

标签: mysql cakephp foreign-keys has-many

我必须使用无法修改的现有数据库。 有两个表我需要与hasMany关系链接(SGRPART hasMany SSGART)。

难点在于这些表是用两列连接的,没有一列是主键:

表SGRPART的结构:
IDSGRAPART(第9版)
CGRPART(第9条)
CSOUSGRP(第9条)
DESGRPART(varchar 100)

表格SSGART的结构:
IDSSGART(第9条)
CGRPART(第9条)
CSOUSGRP(第9期) DESGRPART(varchar 100)

关系应该是: SGRPART.CGRPART = SSGART.CGRPART和SGRPART.CSOUSGRP = SSGART.CSOUSGRP

我在SGRPART模型中尝试过此操作,但它不会从表格SSGART返回相关记录:

class SGRPART extends AppModel
{
public $name = 'SGRPART';
public $useTable = 'SGRPART';
public $primaryKey = 'IDSGRPART';
public $displayField = 'DESGRPART';

var $hasMany = array(
'SSGART' => array(
'foreignKey' => false,
'conditions' => array('SSGART.CGRPART' => 'SGRPART .CGRPART','SSGART.CSOUSGRP'=>'SGRPART .CSOUSGRP')
)
);

}

任何想法是否在Cakephp中是可行的,如果是的话怎么做?

谢谢, 詹姆斯

1 个答案:

答案 0 :(得分:-1)

你能不能试试这个

public $hasMany = array(
    'SSGART' => array(
        'className' => 'SSGART',
        'foreignKey' => 'IDSGRPART',
        'dependent' => true,
        'conditions' => array('SSGART.CGRPART' => 'SGRPART .CGRPART','SSGART.CSOUSGRP'=>'SGRPART .CSOUSGRP')
        'fields' => '',
        'order' => '',
        'limit' => '',
        'offset' => '',
        'exclusive' => '',
        'finderQuery' => '',
        'counterQuery' => ''
    ),
); 

将其放入“SGRPART”模型

相关问题