Php Symfony-FOSUserBundle大对象
当我尝试使用:Php Symfony-FOSUserBundle大对象,php,doctrine-orm,symfony,Php,Doctrine Orm,Symfony,当我尝试使用: $user = $userRepo->find($id) 使用FOSUserBundle,我接收到一个大对象。当然,我可以使用我自己的回购查询来查找它并作为数组返回,但我想通过以下方式更新此用户: $user->setName('asd'); 如果有其他方法通过find函数获得更小的对象?任何水合物或任何东西。在我的情况下,引用不是一个解决方案。我相信您可以使用来实现这一点: $userId = ...; // you user id $user = $em
$user = $userRepo->find($id)
使用FOSUserBundle,我接收到一个大对象。当然,我可以使用我自己的回购查询来查找它并作为数组返回,但我想通过以下方式更新此用户:
$user->setName('asd');
如果有其他方法通过find函数获得更小的对象?任何水合物或任何东西。在我的情况下,引用不是一个解决方案。我相信您可以使用来实现这一点:
$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(“废话”)代码>它不会在数据库中更新。返回整个对象有什么问题?它有多大?