如何在表单中插入登录用户?

热情

我希望以一种形式自动将登录用户的ID插入,我这样做是这样的:

/**
 * Body
 *
 * @ORM\Table(name="Body", indexes={@ORM\Index(name="User", columns={"user_id"})})
 * @ORM\Entity
 */
 class Body
{
/**
 * @var integer
 *
 * @ORM\Column(name="id", type="integer", nullable=false)
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="IDENTITY")
 */
private $id;

/**
 * @var \DateTime
 *
 * @ORM\Column(name="date", type="datetime", nullable=true)
 */
private $date;

/**
 * @var string
 *
 * @ORM\Column(name="entry", type="string", length=45, nullable=true)
 */
private $entry;

/**
 * @var \User
 *
 * @ORM\ManyToOne(targetEntity="User")
 * @ORM\JoinColumns({
 *   @ORM\JoinColumn(name="user_id", referencedColumnName="id")
 * })
 */
private $user;

....

}

User.php:

/**
 * User
 *
 * @ORM\Table(name="User")
 * @ORM\Entity
 */
 class User extends BaseUser {

/**
 * @var integer
 *
 * @ORM\Column(name="id", type="integer", nullable=false)
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="IDENTITY")
 */
protected $id;

/**
 * @var string
 *
 * @ORM\Column(name="first_name", type="string", length=50, nullable=true)
 */
private $firstName;

/**
 * @var string
 *
 * @ORM\Column(name="last_name", type="string", length=50, nullable=true)
 */
private $lastName;
 ....

}

BodyType形式:

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
use My\MyBundle\Entity\User;

class BodyType extends AbstractType
{

private $author;

public function __construct( User $author )
{
    $this->author = $author;
}
/**
 * @param FormBuilderInterface $builder
 * @param array $options
 */
public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('date', 'date')
        ->add('entry', 'text')
        ->add('User', 'hidden', array('data'=>$this->author))
        ->add('save', 'submit')
    ;
}
...
}

和我的动作:

 public function CreateAction(Request $request)
{

$body = new Body();
$form = $this->get('form.factory')->create(new     BodyType($this->get('security.context')->getToken()->getUser()), $body);
if ($form->handleRequest($request)->isValid()) {
  $em = $this->getDoctrine()->getManager();
  $em->persist($body);
  $em->flush();
}

最后,提交表单后出现此错误:

Catchable Fatal Error: Argument 1 passed to My\MyBundle\Entity\Body::setUser() must be an instance of My\MyBundle\Entity\User, string given, called in /var/www/project/vendor/symfony/symfony/src/Symfony/Component/PropertyAccess/PropertyAccessor.php on line 410 and defined 

有人有解决办法吗?

阿尔达米尔

您不能使用隐藏字段即时存储参考。您必须:

使用数据转换器可帮助您正确转换值并在需要时返回对象(此处提供更多信息:手册:如何使用数据转换器

或者,由于您不打算显示该字段,因此您可以自己进行设置,如下所示:

$body = new Body();
$body->setUser( $this->getUser() );
// A shortcut for $this->get('security.context')->getToken()->getUser()
// if your controller extends the one Symfony is providing

我相信选项2可以胜任。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Odoo v10:如何在表单中显示当前登录用户的电子邮件?

来自分类Dev

如何在wordpress中基于登录用户添加条件?

来自分类Dev

如何在WooCommerce中登录用户会员计划

来自分类Dev

我们如何知道哪个登录用户正在使用Java中的表单?

来自分类Dev

如何获取登录用户 ID 并插入到 PHP 中的另一个表

来自分类Dev

Django表单如何仅显示登录用户?

来自分类Dev

如何在Flutter中显示除已登录用户外的Firebase用户列表?

来自分类Dev

如何在Django的模型字段中添加已登录用户的用户名

来自分类Dev

如何在 UWP App 中获取当前登录用户的用户名或 ID

来自分类Dev

如何在 Windows(7、8、8.1 和 10)中判断登录用户的用户名?

来自分类Dev

插入已登录用户的用户ID

来自分类Dev

在Symfony 2.3的功能测试中,如何在会话中登录用户?

来自分类Dev

Django中如何查看登录用户以外的用户信息?

来自分类Dev

如何在servlet(Portlet)中获取Liferay登录用户详细信息?

来自分类Dev

管理员进程如何在已登录用户中打开应用程序?

来自分类Dev

如何在控制器中获取已登录用户的ID?

来自分类Dev

如何在已登录用户的ionic中更改侧面菜单

来自分类Dev

如何在yii2中按登录用户进行更新,查看,删除?

来自分类Dev

如何在QWeb Report Odo中获取当前的登录用户名

来自分类Dev

如何在Laravel中显示属于已登录用户的项目?

来自分类Dev

如何在Skyve中向所有登录用户创建广播消息?

来自分类Dev

如何在控制器中的Laravel中使用自定义防护登录用户

来自分类Dev

如何在sudo脚本(OSX)中以登录用户身份执行?

来自分类Dev

挂载/复制后如何在/ home /文件夹中登录用户?

来自分类Dev

如何在Laravel中以登录用户身份运行Behat测试?

来自分类Dev

如何在Android中的应用程序上保留登录用户

来自分类Dev

Liferay:如何在Servlet中获取当前的登录用户详细信息?

来自分类Dev

如何在Magnolia CMS中向登录用户显示页面的某些内容部分

来自分类Dev

如何在yii2中按登录用户更新,查看,删除?

Related 相关文章

  1. 1

    Odoo v10:如何在表单中显示当前登录用户的电子邮件?

  2. 2

    如何在wordpress中基于登录用户添加条件?

  3. 3

    如何在WooCommerce中登录用户会员计划

  4. 4

    我们如何知道哪个登录用户正在使用Java中的表单?

  5. 5

    如何获取登录用户 ID 并插入到 PHP 中的另一个表

  6. 6

    Django表单如何仅显示登录用户?

  7. 7

    如何在Flutter中显示除已登录用户外的Firebase用户列表?

  8. 8

    如何在Django的模型字段中添加已登录用户的用户名

  9. 9

    如何在 UWP App 中获取当前登录用户的用户名或 ID

  10. 10

    如何在 Windows(7、8、8.1 和 10)中判断登录用户的用户名?

  11. 11

    插入已登录用户的用户ID

  12. 12

    在Symfony 2.3的功能测试中,如何在会话中登录用户?

  13. 13

    Django中如何查看登录用户以外的用户信息?

  14. 14

    如何在servlet(Portlet)中获取Liferay登录用户详细信息?

  15. 15

    管理员进程如何在已登录用户中打开应用程序?

  16. 16

    如何在控制器中获取已登录用户的ID?

  17. 17

    如何在已登录用户的ionic中更改侧面菜单

  18. 18

    如何在yii2中按登录用户进行更新,查看,删除?

  19. 19

    如何在QWeb Report Odo中获取当前的登录用户名

  20. 20

    如何在Laravel中显示属于已登录用户的项目?

  21. 21

    如何在Skyve中向所有登录用户创建广播消息?

  22. 22

    如何在控制器中的Laravel中使用自定义防护登录用户

  23. 23

    如何在sudo脚本(OSX)中以登录用户身份执行?

  24. 24

    挂载/复制后如何在/ home /文件夹中登录用户?

  25. 25

    如何在Laravel中以登录用户身份运行Behat测试?

  26. 26

    如何在Android中的应用程序上保留登录用户

  27. 27

    Liferay:如何在Servlet中获取当前的登录用户详细信息?

  28. 28

    如何在Magnolia CMS中向登录用户显示页面的某些内容部分

  29. 29

    如何在yii2中按登录用户更新,查看,删除?

热门标签

归档