當我嘗試使用: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」);'它不會在數據庫中得到更新。 –
是的,這很好! :) –
什麼是問題返回整個對象?它有多'大'? –