2011-08-18 46 views
0

有点脑残的早晨。关于symfony2和我无法解决如何通过用户ID更新表。例如:我有一个配置文件表,其中包含在注册时创建的用户标识,所以除了用户标识外,我还有一个空表。我想更新属于登录用户的配置文件表行。我有一对一的关系和一个getUser方法。 ??我能够获得当前登录用户的ID,只是不知道更新相关表。Symfony 2通过用户ID更新相关表格

回答

0

考虑到您的信息,我假设用户是所有者。我不知道你是否设置了用户持续的配置文件...

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();