我必须使用一个无法修改的现有数据库。
有两个表,我需要链接一个HASHO许多关系(SGRAPHOST许多SSGART)。
困难在于,这些表是用两列连接起来的,没有一列是主键:
表结构的结构:
IDSPCART(int 9)
CGREST(INT 9)
CSOUSGRP(国际9)
德沙格特(VARCHAR 100)
表SSGART的结构:
IDSSGART(内景9)
CGREST(INT 9)
CSOUSGRP(国际9)
德沙格特(VARCHAR 100)
这种关系应该是:
SGARPTC.CGREST和SGRAPGR.CSUSORP= SSGARGP
我在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中是否可行吗?如果可以,怎么做?
谢谢,
詹姆斯

最佳答案

你能试试这个吗

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”模型中

10-07 12:33