使用CakePHP中的指定字段连接两个表

时间:2012-03-29 06:59:07

标签: cakephp-2.0

我有两个名为SiteaddressJobsheet的表。在Jobsheet表中有一个名为siteaddress的字段,其中包含存储在Siteaddress表中的站点地址的ID。

我遇到的问题是,当我在控制器中进行连接时,CakePHP使用两个表中的Siteaddress字段将Jobsheet表加入id表。这会导致问题,因为Siteaddress表中只有一条记录(到目前为止),而Jobsheet表中只有多条记录。

我需要做的是告诉CakePHP加入Jobsheet.siteaddressSiteaddress.id而不是它现在的工作方式。

我怎么能这样做?

以下是Jobsheet模型文件中的关系代码:

public $hasOne = array(
    'Company' => array(
        'className' => 'Company',
        'foreignKey' => 'id',
        'conditions' => '',
        'fields' => '',
        'order' => ''
    ),
    'Siteaddress' => array(
        'className' => 'Siteaddress',
        'foreignKey' => 'id',
        'conditions' => '',
        'fields' => '',
        'order' => ''
    )
);

干杯!

1 个答案:

答案 0 :(得分:1)

您已将foreignKey设置为id,因此Cake使用此功能进行连接。可以将此键设置为要加入的表中所需的任何表字段。如果我理解正确,您应将foreignKey设置为siteaddress

'Siteaddress' => array(
    'className' => 'Siteaddress',
    'foreignKey' => 'siteaddress',
    'conditions' => '',
    'fields' => '',
    'order' => ''
)

同样请hasOne了解$belongsTo

修改

在这种情况下,{{1}}可能更适合作为关联。