CakePHP表与另一个表有两个关系

时间:2015-07-23 04:02:14

标签: php mysql cakephp

我正在使用CakePhp 2.x建立房地产系统。我的问题是我无法将我的所有者表(hasMany)与我的契约表(hasOne和hasOne)联系起来。我一直关注这个Models with two hasOne relations to same table第一个表是所有者有以下列:

id | lastName | firstName | middleName | etc...

第二个表是Deed,其中包含以下列:

id | owner_buyer | owner_seller | etc...

在表格Deed中,owner_buyer和owner_seller都是所有者,我无法将owner_buyer和owner_seller列更改为owner_id。我已经为每个契约静态输入了所有者ID,但我无法检索所有者信息。

以下是一些其他信息:

契约模型:

App::uses('AppModel', 'Model');
class Deed extends AppModel {
    public $hasOne = array(
        'OwnerA' => array(
            'className' => 'Owner',
            'foreignKey' => 'owner_buyer'
        ),
        'OwnerB' => array(
            'className' => 'Owner',
            'foreignKey' => 'owner_seller'
        )
    );
}

所有者模型:

App::uses('AppModel', 'Model');
class Owner extends AppModel {
    public $hasMany = array(
        'Deed' => array(
            'className' => 'Deed',
            'finderQuery' => 'SELECT * FROM deeds AS Deed WHERE Deed.owner_buyer_id = {$__cakeID__$} OR Deed.owner_seller_id = {$__cakeID__$};'
        )
    );
}

deedList.ctp

...
<td><?php echo $deed['Owner']['owner_buyer']; ?></td>
<td><?php echo $deed['Owner']['owner_seller']; ?></td>
...

买方和卖方都给我以下通知:

Notice (8): Undefined index: Owner

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

查看通知我认为您对变量$ deed有问题。 你能复制并粘贴关于通知的所有信息吗?

此外,尝试在ctp文件中添加debug($ deed),并检查实际结构是否符合您的预期。

齐射