2013-04-02 68 views
0

我想要將正在創建/編輯內容的用戶的用戶標識存儲到數據庫中。我已經創建了實體。如何在創建/編輯項目時添加用戶標識

如何在我的控制器添加用戶領域實體

我在這一點上

$entity = new Product(); 
    $form = $this->createForm(new ProductType(), $entity); 
    $form->bind($request); 

    if ($form->isValid()) { 
     $em = $this->getDoctrine()->getManager(); 
     $em->persist($entity); 
     $em->flush(); 

產品實體的用戶部分

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

/** 
* Set user 
* 
* @param \CJ\BusinessBundle\Entity\User $user 
* @return Product 
*/ 

public function setUser(\CJ\BusinessBundle\Entity\User $user = null) 
{ 
    $this->user = $user; 

    return $this; 
} 

回答

3

改變什麼,你將獲得當前用戶使用$this->get('security.context')->getToken()->getUser()

然後在聲明您的實體之後,您將添加用戶或user_id。

所以..

$user = $this->get('security.context')->getToken()->getUser(); 

$entity = new Product(); 
$entity->setUser($user); 
    // or $entity->setUserid($user->getId()) or maybe something 
    // else depending on your entity 

當你然後使用實體創建表單的用戶(或用戶ID)將成爲其中的一部分。

+0

不工作。 $ user = $ this-> getUser(); $ entity-> setUser($ user); $ em-> persist($ entity); – chirag7jain

+0

你的實體是什麼樣的? – qooplmao

+0

我已經添加了產品實體和setUser函數的用戶部分。你需要什麼其他 – chirag7jain

相關問題