【问题标题】:CakePHP model belongs to any other modelCakePHP 模型属于任何其他模型
【发布时间】:2011-07-21 12:02:03
【问题描述】:

我不确定正确的标题是什么。这是我的问题:

有几种型号如:
公司
人(与用户不同)
用户
等等

其中一些需要附加一个或多个文件。

所以我创建了一个 UploadedFile 模型。如何将其链接到上述任何模型? 有时,UploadedFile 属于 Company。 有时 UploadedFile 属于 Person

如果一个UploadedFile属于一个Company,那么它不属于像Person这样的其他人。

所有 UploadedFile 都属于 User(因为他们上传了这些文件,我需要跟踪是谁上传的)

HABTM 在这里有效吗?还有其他更好的方法吗?

非常感谢您的帮助。

最好的问候,
托尼。

【问题讨论】:

    标签: cakephp-1.3 cakephp-model


    【解决方案1】:

    使 UploadedFile 登录到所有三个(用户、公司和个人):

    var $belongsTo = array(
        'User' => array('className' => 'User','foreignKey' => 'user_id'),
        'Company' => array('className' => 'Company','foreignKey' => 'company_id'),
        'Person' => array('className' => 'Person','foreignKey' => 'person_id'));
    

    因为它总是属于一个用户,所以 user_id 总是有一个值。

    然后您将检查是否设置了 company_id 或 person_id 并确定文件属于它们中的哪一个。我有一个像这样工作的应用程序。有点辛苦,但我找不到其他解决方案

    另一个好主意是尝试将 Person 和 Company 组合在一个表中,并用一个标志来区分两者。

    【讨论】:

    • 嗨,马丁,感谢您的快速回复。听起来是一个好主意。我会试试的。我认为这也可以用于我遇到的另一个类似问题:每个公司可以有很多股东,但股东可以是另一家公司或个人。
    猜你喜欢
    • 1970-01-01
    • 2016-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-24
    • 1970-01-01
    • 1970-01-01
    • 2015-02-03
    相关资源
    最近更新 更多