Symfony 2按用户ID更新相关表

时间:2011-08-18 15:10:10

标签: doctrine-orm symfony

早上有点脑死亡。搞乱symfony2和我无法弄清楚如何通过用户ID更新表。例如:我有一个配置文件表,其中包含在注册时创建的用户ID,因此除了用户ID之外我有一个空表。我想更新属于登录用户的配置文件表行。我有一对一的关系和一个getUser方法。 ??我能够获取当前登录用户的id,只是不知道更新相关表。

1 个答案:

答案 0 :(得分:0)

考虑到您的信息,我认为用户是所有者。我不知道你是否坚持使用User ...

if (is_null($user->getProfile()) {
  $profile = new \Foo\BarBundle\Entity\Profile();
  $em->persist($profile);
  $user->setProfile($profile);
} else $profile = $user->getProfile();

$profile->setBarBaz('barbaz');
$profile->setFooBaz('foobaz');
$em->flush();
那很好吗? 或者DQL(我没有这样做,可能有语法错误):

$qb = $em->createQueryBuilder();
$result = $qb->update('Foo\BarBundle\Entity\Profile', 'p')
  ->set('barBaz', 'barbaz')
  ->set('fooBaz', 'foobaz')
  ->where('p.user_id = ?1')->setParameter(1, $user->getId())
  ->getQuery()
  ->getResult();
相关问题