Doctrine2具有位掩码列的实体

时间:2012-09-06 21:34:24

标签: symfony1 doctrine-orm

我正在开发一个具有多个位掩码列的实体的项目。例如,我的用户实体有一列specialitiesBitmask。此位掩码将与另一个表相关联,例如,Specialty。如果我想做一些像$user->getSpecialties()这样的事情,最好的办法是什么?我需要查询Specialty表,并相应地细分位掩码。但是,使用Doctrine2,您无权访问EntityManager。

我四处寻找任何解决方案,但找不到多少。看看这个你可以使用一个监听器来挂钩postLoad事件并以这种方式获取EM,但这很糟糕而且不干净。

我能想到的唯一其他解决方案是创建其他服务并执行类似$userService->getSpecialtiesForUser($user);的操作,但是这也不是那么干净/高效,因为有许多列是位掩码的。< / p>

您认为最好的方式是什么?

1 个答案:

答案 0 :(得分:1)

创建SpecialtyRepository,并实施getByUser($user)。您可以找到如何执行此操作herehere

然后,为了获得用户的专长,你可以做到:

$specialties = $em->getRepository('Specialty')->getByUser($user);