symfony - 使用存储库方法为实体定义 __toString()
问题描述
假设我有一个“书”实体类。它链接到“作者”实体类。在我的图书存储库中,我有一个称为getTitle()
连接图书信息和作者属性的方法。
现在,我希望从我的任何观点来看,当我调用 时{{thisBook}}
,会显示 getTitle() 结果。
本能地,我想它需要__toString()
在我的书实体中创建一个方法,该方法调用我的书库的 getTitle() 方法。但是每个人都反对它(请参阅:从实体调用存储库方法,如何在 symfony2 中访问实体的存储库方法? ...)。
我应该“强制”系统吗?或者有更清洁的方法吗?这听起来很琐碎,必须有一个“官方”和简单的方法来做到这一点......
解决方案
如果不包括对外部资源的访问,则在实体本身中定义方法是没有问题的。因此,如果您所做的只是连接实体本身的值,那没问题(谷歌关于所谓的anemic
和rich
实体)。
在这种情况下,使用类似服务的东西绝对是矫枉过正。基本上你不应该访问实体中的服务(和存储库或其他任何实际工作的东西),它们只是一个存储。但是访问实体本身的值甚至是相关实体的值都可以。
推荐阅读
- javascript - React 网页源代码与文件上的编译代码不同
- javascript - 按相同的 id 过滤数组
- python - AttributeError:“ResourceVariable”对象没有属性“_distribute_strategy”
- .net - .NET 4.8 限制并发请求
- python - Python异步增加相同的变量以提高性能?
- javascript - TypeScript:“任何[]”类型上不存在属性“名称”
- google-apps-script - Apps 脚本 Google Drive CSV 导入
- javascript - 在 Safari 浏览器 (react-router-dom) 上按后退/前进时状态持续存在
- python - Librosa.load 找到发送给它的第一个文件,但为所有后续文件返回 FileNotFoundError
- c# - System.IO.IOException:“该进程无法访问该文件,因为它正被另一个进程使用。”