Как добавить идентификатор пользователя при создании / редактировании элемента
Я хочу сохранить идентификатор пользователя, который создает / редактирует контент в базе данных. Я уже создал сущность.
Как добавить пользовательское поле в моем контроллере к сущности
Что я могу изменить на этом этапе
$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;
}
1 ответ
Решение
Вы бы получить текущий пользователь, используя $this->get('security.context')->getToken()->getUser()
,
Затем, сразу после объявления вашей сущности, вы добавите user или 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
Когда вы затем создаете свою форму, используя сущность, пользователь (или идентификатор пользователя) будет ее частью.