我有一个对象$ user,它与$ establishment有一对多的关系。我可以使用:在Doctrine 2中设置非永久关系
$user->getEstablishments();
用户可以选择一个稳定工作。我有这样的方法,我在控制器中称:我在查看通话
$user->setCurrentEstablishment($establishment);
这一个:
$establishment = $user->getCurrentEstablishment();
我希望能够调用:
$user->setCurrentEstablishmentBy Slug($establishment_slug);
其中slug是一个字符串,并让用户对象查找建立。
学说不鼓励访问实体对象内的实体管理器的做法,但我认为在控制器中使用它更糟糕。
我怀疑是否存在一些特殊的Doctrine注解来处理像这样的非持久性关系,或者应该使用通过服务为服务实体管理器提供服务以外的其他方法。从模型中引用其他实体的一种简单方法。
¿是否有? ¿我怎么能这样做?
为什么你认为使用实体管理器的控制器是坏? – Cerad
您应该在控制器或服务中(例如UserService - 您需要创建它)。 –
这不是在控制器中使用实体管理器是不好的。这是该实体应该给你一些有关自己的相关数据,而无需你自己收集在控制器中。就像它给你通常的持久关系一样,它也应该为你提供运行时间,非持久性关系,就像在我的例子中,通过slug来记录相关记录。只是我的观点。 –