首页 > 解决方案 > 使用存储库方法为实体定义 __toString()

问题描述

假设我有一个“书”实体类。它链接到“作者”实体类。在我的图书存储库中,我有一个称为getTitle()连接图书信息和作者属性的方法。

现在,我希望从我的任何观点来看,当我调用 时{{thisBook}},会显示 getTitle() 结果。

本能地,我想它需要__toString()在我的书实体中创建一个方法,该方法调用我的书库的 getTitle() 方法。但是每个人都反对它(请参阅:从实体调用存储库方法如何在 symfony2 中访问实体的存储库方法? ...)。

我应该“强制”系统吗?或者有更清洁的方法吗?这听起来很琐碎,必须有一个“官方”和简单的方法来做到这一点......

标签: symfony

解决方案


如果不包括对外部资源的访问,则在实体本身中定义方法是没有问题的。因此,如果您所做的只是连接实体本身的值,那没问题(谷歌关于所谓的anemicrich实体)。

在这种情况下,使用类似服务的东西绝对是矫枉过正。基本上你不应该访问实体中的服务(和存储库或其他任何实际工作的东西),它们只是一个存储。但是访问实体本身的值甚至是相关实体的值都可以。


推荐阅读