【问题标题】:CakePHP table has two relations to another tableCakePHP 表与另一个表有两个关系
【发布时间】:2015-07-23 04:02:13
【问题描述】:

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

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

第二张表是Deed有以下列:

id | owner_buyer | owner_seller | etc...

在契约表中,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

任何帮助将不胜感激!

【问题讨论】:

  • $deed['Owner'] - 没有关联 Deed->问题中定义的所有者。
  • 我的第一条评论还是准确的。如果您正在为问题编造名字 - 不要那样做。

标签: php mysql cakephp


【解决方案1】:

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

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

齐射

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-02
    • 1970-01-01
    • 2023-03-26
    • 2021-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多