【发布时间】:2016-10-08 22:28:06
【问题描述】:
我是 Symfony 的新手,我来自一个 MVC 框架,其中只有一个 Model 类,但据我所知,在 Symfony 中我们有 2 个(实体和存储库)
所以,我不确定什么时候应该将方法放在实体类中,什么时候应该放在存储库中......
例如:
$user->logLogin()
它将用户登录(时间戳、ip、国家、用户代理 ecc。)记录到 log_logins 表中,并从登录事件侦听器中调用,它应该去哪里? (我不打算创建 UserLogins 实体,因为不需要操作该表上的数据,它只是一些只读信息)
【问题讨论】:
-
简而言之......实体是应用程序中表的表示,因此将与其属性相关的所有方法都放在实体上,例如:
$user->getEmail()。存储库是一种检索实体的方法,因此可以在存储库中添加获取实体所需的任何方法,例如getUserByEmail或其他任何方式。 -
表
log_login与表user以多对一的关系连接。 Tou 可以使用学说关系并在user实体中包含方法addLogLogin()。在user实体中,将有logLogin类型为ArrayCollection的属性。描述于doc
标签: symfony