2011-08-18 2 views
0

뇌가 죽은 아침이 조금 있습니다. symfony2에 대해 혼란스러워하고 사용자 ID로 테이블을 업데이트하는 방법을 배울 수 없습니다. 예를 들어, 등록시 생성 된 사용자 ID가있는 프로필 테이블이 있으므로 사용자 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();