将相同模型两次链接到CakePhp中的另一个模型

桑德·范·利文(Sander van Leeuwen)

这可能是一个非常基本的问题,但是我无法解决这个问题。

在我的应用程序中,我的用户拥有多个具有不同目的的地址。例如,用户可以具有一个地址和一个发票地址。我想将两个地址存储在同一张表(“地址”模型)中,然后将它们分配给一个用户。

各个模型如下所示:

地址:

 public $belongsTo = array(
    'Address' => array(
        'className' => 'Address',
    ),
    'InvoiceAddress' => array(
        'className' => 'Address',
    ),
);

和用户:

public $hasOne = array(
    'Address' => array(
        'className' => 'Address',
    ),
    'InvoiceAddress' => array(
        'className' => 'Address',
    ),
);

当一个用户有一个地址时,我会将一个user_id作为外键添加到Address模型中,并完成此操作。但是显然,CakePhp必须做些不同的事情才能区分地址和发票地址。

在我看来,解决方案就像在User表中添加address_id和invoice_address_id一样,但是我似乎无法以任何方式使其工作。

gmponos

如果要在用户表中添加相关字段,则最好以以下格式address_user_id来添加它们invoice_address_user_id然后,您的用户模型中必须具有一个类似于以下内容的belongsTo关系:

public $belongsTo = array(
    'Address' => array(
        'className' => 'Address',
        'foreignKey' => 'address_user_id',
    ),
    'InvoiceAddress' => array(
        'className' => 'Address',
        'foreignKey' => 'invoice_address_user_id',
    ),
);

因此,当您执行以下命令时$this->User->find('all');,结果将是

$result = array(0 => 
                array('User' => array(...),
                      'Address' => array(...), // it will bring only one address row
                      'InvoiceAddress' => array(...) // it will bring only one address row
                ),
                1 => ...
                2 => ...
          );

然后,在您的地址模型中,您必须添加的关系是:

public $hasOne = array(
    'User' => array(
        'className' => 'User',
        'foreignKey' => 'address_user_id',
    ),
    'InvoiceUser' => array(
        'className' => 'User',
        'foreignKey' => 'invoice_address_user_id',
    )
);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将相同模型两次链接到CakePhp中的另一个模型

来自分类Dev

Rails将一个模型添加到另一个模型两次

来自分类Dev

Django如何在一个提交请求中两次保存相同的模型表单

来自分类Dev

Django如何在一个提交请求中两次保存相同的模型表单

来自分类Dev

如何在Mongo中将一个模型链接到另一个模型

来自分类Dev

在另一个JSP中两次包含相同的JSP文件

来自分类Dev

如何从链接到另一个模型的外键访问模型字段?

来自分类Dev

检查一个模型是否与cakephp中的另一个模型相关联?

来自分类Dev

将一个表两次内部连接到另一个表 - sqlite

来自分类Dev

如果在Django中形成另一个模型,如何基于相同模型从另一个模型中显示值

来自分类Dev

在另一个模型中访问 listView 模型

来自分类Dev

CarrierWave在单个模型中两次使用一个上传器

来自分类Dev

如何在Keras的一个模型中两次使用同一层/模型?

来自分类Dev

在cakephp中的另一个模型上设置条件

来自分类Dev

如何在Django的相同模型中调用/引用另一个属性

来自分类Dev

如果您从另一个 APP 打开,相同的 Activity 会创建两次

来自分类Dev

克隆Django模型实例对象并将其保存到具有相同字段的另一个模型中

来自分类Dev

如何在一个Django模型创建一个链接,指向另一个模型?

来自分类Dev

Cakephp模型保存数据两次

来自分类Dev

根据相同的ID将列表模型转换为另一个列表模型

来自分类Dev

链接到另一个HTML文件中的另一个div

来自分类Dev

如何在Rails中从另一个模型更新并保存一个模型?

来自分类Dev

在node.js中从另一个模型引用一个模型

来自分类Dev

在Rails中两次引用相同的模型

来自分类Dev

骨干从另一个模型中插入数据

来自分类Dev

如何在Rails 4.0中两次加入相同的2个模型?

来自分类Dev

如何在Django中将一个模型的多个记录连接到另一个模型?

来自分类Dev

django模型具有另一个模型的两个字段

来自分类Dev

mongoid 模型与另一个模型有两种关系 - rails mongodb

Related 相关文章

  1. 1

    将相同模型两次链接到CakePhp中的另一个模型

  2. 2

    Rails将一个模型添加到另一个模型两次

  3. 3

    Django如何在一个提交请求中两次保存相同的模型表单

  4. 4

    Django如何在一个提交请求中两次保存相同的模型表单

  5. 5

    如何在Mongo中将一个模型链接到另一个模型

  6. 6

    在另一个JSP中两次包含相同的JSP文件

  7. 7

    如何从链接到另一个模型的外键访问模型字段?

  8. 8

    检查一个模型是否与cakephp中的另一个模型相关联?

  9. 9

    将一个表两次内部连接到另一个表 - sqlite

  10. 10

    如果在Django中形成另一个模型,如何基于相同模型从另一个模型中显示值

  11. 11

    在另一个模型中访问 listView 模型

  12. 12

    CarrierWave在单个模型中两次使用一个上传器

  13. 13

    如何在Keras的一个模型中两次使用同一层/模型?

  14. 14

    在cakephp中的另一个模型上设置条件

  15. 15

    如何在Django的相同模型中调用/引用另一个属性

  16. 16

    如果您从另一个 APP 打开,相同的 Activity 会创建两次

  17. 17

    克隆Django模型实例对象并将其保存到具有相同字段的另一个模型中

  18. 18

    如何在一个Django模型创建一个链接,指向另一个模型?

  19. 19

    Cakephp模型保存数据两次

  20. 20

    根据相同的ID将列表模型转换为另一个列表模型

  21. 21

    链接到另一个HTML文件中的另一个div

  22. 22

    如何在Rails中从另一个模型更新并保存一个模型?

  23. 23

    在node.js中从另一个模型引用一个模型

  24. 24

    在Rails中两次引用相同的模型

  25. 25

    骨干从另一个模型中插入数据

  26. 26

    如何在Rails 4.0中两次加入相同的2个模型?

  27. 27

    如何在Django中将一个模型的多个记录连接到另一个模型?

  28. 28

    django模型具有另一个模型的两个字段

  29. 29

    mongoid 模型与另一个模型有两种关系 - rails mongodb

热门标签

归档