我有两个名为Siteaddress
和Jobsheet
的表。在Jobsheet
表中有一个名为siteaddress
的字段,其中包含存储在Siteaddress
表中的站点地址的ID。
我遇到的问题是,当我在控制器中进行连接时,CakePHP使用两个表中的Siteaddress
字段将Jobsheet
表加入id
表。这会导致问题,因为Siteaddress
表中只有一条记录(到目前为止),而Jobsheet
表中只有多条记录。
我需要做的是告诉CakePHP加入Jobsheet.siteaddress
到Siteaddress.id
而不是它现在的工作方式。
我怎么能这样做?
以下是Jobsheet
模型文件中的关系代码:
public $hasOne = array(
'Company' => array(
'className' => 'Company',
'foreignKey' => 'id',
'conditions' => '',
'fields' => '',
'order' => ''
),
'Siteaddress' => array(
'className' => 'Siteaddress',
'foreignKey' => 'id',
'conditions' => '',
'fields' => '',
'order' => ''
)
);
干杯!
答案 0 :(得分:1)
您已将foreignKey
设置为id
,因此Cake使用此功能进行连接。可以将此键设置为要加入的表中所需的任何表字段。如果我理解正确,您应将foreignKey
设置为siteaddress
:
'Siteaddress' => array(
'className' => 'Siteaddress',
'foreignKey' => 'siteaddress',
'conditions' => '',
'fields' => '',
'order' => ''
)
同样请hasOne
了解$belongsTo
。
修改强>
在这种情况下,{{1}}可能更适合作为关联。