CakePHP模型属于任何其他模型

时间:2011-07-21 12:02:03

标签: cakephp-1.3 cakephp-appmodel

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

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

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

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

如果 UploadedFile 属于公司,则它不属于等其他人。

所有 UploadedFile 属于用户(因为他们上传了这些内容,我需要跟踪上传的内容)

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

非常感谢您的帮助。

最好的问候,
贝。

1 个答案:

答案 0 :(得分:1)

将UploadedFile belog设为所有三个(用户,公司和个人):

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组合在一个表中,只需要一个标志来区分这两者。