2013-08-07 4 views
0

관계가있는 엔티티 만보고 수정하도록 내 사용자 계정을 제한하고 싶습니다.Symfony2는 FOS 사용자가 관계가있는 엔티티 만 업데이트하도록 허용합니다.

기본 FOS 사용자 설정이 있고 사용자 엔티티와 일대일 관계가 많은 엔티티가 있습니다.

/** 
* @ORM\ManyToOne(targetEntity="User", inversedBy="blog") 
* @ORM\JoinColumn(name="user_id", referencedColumnName="id") 
*/ 
private $user_id; 

스키마 유효성이 올바르게 유지되고 교리가 내 관계에 만족할 것 같습니다.

나는 기본/시스템을 생성하기 위해 app/console generate : doctrine : crud 명령을 사용했습니다.

로그인 한 사용자와 관계가없는 반환하는 엔티티에서 doctrine을 어떻게 제한해야합니까?

이것은 현재 모든 항목을 가져 오기 위해 사용하고있는 코드입니다.

$entities = $em->getRepository('ExampleBundle:Blog')->findAll(); 

사용자 ID로 가져 오기를위한 기본 제공 명령이 있습니까? 아니면 일부 DQL을 작성해야합니까?

답변

1

findBy 메서드를 현재 로그인 한 사용자와 함께 사용할 수 있습니다.

$user = $this->get('security.context')->getToken()->getUser(); 
$entities = $em->getRepository('ExampleBundle:Blog')->findBy(array('user' => $user)); 

그리고 당신의 Blog 기업에 대한

, 그것은 당신이 사용자가 아닌 ID를 싶어하는 user_id하지만 user을 아니다. $blog->getUser();

희망이 있으면 도움이됩니다.

+0

감사합니다. 정확히 내가 필요한 것입니다. 나는 당신의 첫번째 줄이 "get"대신에 "$ this-> get"을 가져야한다고 생각한다. – gan