我有一个实体,比如 Game
,它有一些属性,比如 time
,它下面有很多 Event
实体。有关游戏的一些信息隐式存储在实体中,例如死亡人数(由死亡事件的数量给出)。
如果我想在模板(可以访问游戏对象)中显示死亡人数,我应该把逻辑放在哪里?
我可以想到几个选项,但不确定哪个是“正确”的做法。
- 将 getDeaths() 函数放入存储库
我的印象是它应该去的地方,但我不知道如何从模板正确访问它。 - 在
Game
实体中放置一个 getDeaths() 函数
最简单的事情,因为它很容易从模板访问。 - 在 Controller 中创建一个函数
向管制员询问此信息似乎并不灵活
最佳答案
如果您在 Game 实体中隐式存储死亡人数,则只需向该实体添加一个 getDeaths()
函数即可。无论如何你应该把它放在那里,而不是只保留一个无论如何都可以修改的公共(public)变量。
如果您必须直接从数据库查询死亡人数,则需要 Repository 方法,在这种情况下,您可以直接将其传递给模板。
请记住,您可以将任意数量的变量传递给您的模板,因此它不必只是
return array('game' => $game);
然后在您的模板中:
{{ game.numDeaths }}
您可以轻松地将死亡人数直接传递给您的模板,以便于访问:
return array('game' => $game, 'numDeaths' => $numDeaths);
然后在您的模板中:
{{ numDeaths }}
希望对您有所帮助。
关于php - 在哪里放置实体的额外辅助函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27660322/