当我尝试使用:Symfony的 - FOSUserBundle大对象
$user = $userRepo->find($id)
与FOSUserBundle然后我收到一个大对象。当然,我可以用我自己的回购查询发现它并返回作为数组,但我想更新该用户通过:
$user->setName('asd');
如果有任何其他的方式获得通过查找功能更小的对象?任何水合物或其他。这个参考对我来说不是一个解决方案。
当我尝试使用:Symfony的 - FOSUserBundle大对象
$user = $userRepo->find($id)
与FOSUserBundle然后我收到一个大对象。当然,我可以用我自己的回购查询发现它并返回作为数组,但我想更新该用户通过:
$user->setName('asd');
如果有任何其他的方式获得通过查找功能更小的对象?任何水合物或其他。这个参考对我来说不是一个解决方案。
我相信你可以使用Partial Objects实现这一点:
$userId = ...; // you user id
$user = $em
->createQuery("SELECT PARTIAL u.{id,name} from AppBundle:User u WHERE u.id = :id")
->setParameter('id', $userId)
->getSingleResult();
$user->setName("some new name");
$em->flush();
我还没有试过运行此,但它听起来像它可以工作...
是的,这将工作,虽然就像文档说,我会非常小心使用它。例如,如果您想更改检索到的部分对象上的任何其他字段,则它不会在刷新时更新。所以如果你做了'$ user-> setSomethingElse(“blah”);'它不会在数据库中得到更新。 –
是的,这很好! :) –
什么是问题返回整个对象?它有多'大'? –