繁体   English   中英

如何在创建/编辑项目时添加用户ID

[英]How do I add user id while creating/editing an item

我想将正在创建/编辑内容的用户的用户ID存储到数据库中。 我已经创建了实体。

如何将控制器中的用户字段添加到实体

我现在要改变什么

    $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;
}

您将使用$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)将成为其中的一部分。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM