我必须使用无法修改的现有数据库。 有两个表我需要与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中是可行的,如果是的话怎么做?
谢谢, 詹姆斯
答案 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”模型