2013-08-07 65 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命令來生成一個基本的crud系統。

我應該如何限制來自與登錄用戶沒有關係的返回實體的原則?

這是我目前用來獲取所有實體的代碼。

$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實體,它不是一個user_iduser,要獲得用戶不是ID。 $blog->getUser();

希望它有幫助。

最好的方面。

+0

謝謝,這正是我所需要的。我相信你的第一行應該有「$ this-> get」,而不是「get」。 – gan

相關問題