使用 Zend Framework 模型定义表关系方法的最佳代码位置是啥?

Posted

技术标签:

【中文标题】使用 Zend Framework 模型定义表关系方法的最佳代码位置是啥?【英文标题】:What is the best code location to define table relationship methods using Zend Framework models?使用 Zend Framework 模型定义表关系方法的最佳代码位置是什么? 【发布时间】:2008-12-24 09:41:26 【问题描述】:

我正在创建一个简单的标签系统,它允许我将标签链接到我的应用程序中的几乎所有内容。为了方便这一点,我创建了一个名为“objects”的表,由我的模型“Object”引用。

我目前设置了三个模型:

标签(将 TagObject 定义为 依赖表) 对象(将 TagObject 定义为依赖表) TagObject(在 referenceMap 中定义了 Tag 和 Object)

我已经在我的 Tag 模型中创建了一些简单的方法,例如 fetchTagById()fetchTagByName(),但是现在我想创建一个方法来获取我的标签及其在对象表中的相应出现,以便创建一个简单的标签云。

在结构方面,创建此方法的最佳位置是什么(使用findDependentRowset())?

不知何故,我觉得将它存储在我的 Tag 模型中并不是很好的做法,但将它存储在我的 TagObject 模型中似乎也很尴尬,并且可能会使事情变得过于复杂。

任何建议将不胜感激。

提前致谢。

【问题讨论】:

【参考方案1】:

如果方法检索标签,那么它应该在标签模型中。如果它检索对象,它应该在对象模型中。由于您正在检索标签及其出现,它应该在标签模型中。

我将模型称为标签而不是标签,因为标签是标签中的行,而在 ZF 中,模型通常是表的 DataGateway。对象也一样。

$tags = new Tags();
$cloud = $tags -> getWithObjectOccurrences();

另一方面,我永远不会将一个类命名为“对象”或“对象”,因为它过于通用(对象是一种基本的语言结构)。考虑为它找到一个更具描述性的名称。

【讨论】:

以上是关于使用 Zend Framework 模型定义表关系方法的最佳代码位置是啥?的主要内容,如果未能解决你的问题,请参考以下文章

如何避免与 Doctrine2 和 Zend Framework 2 的多对多关系重复?

Zend Framework 2 中的数据库访问

仅在未指定任何操作时使用 Zend Framework 附加样式表

Zend 2 Framework - Doctrine从给定的2个实体生成表

在 Zend Framework 应用程序中从模型/视图/控制器中抛出异常

一起为多个表设计 Zend 模型?