0

我有一个由 EasyAdmin 管理的实体产品,我还使用 fos UserbUNDLE 进行用户管理。一切正常,但是当我在 easyadmin 中添加新用户时,我有一个用户下拉列表,但我想自动获得经过身份验证的用户。

我在 Product 类的属性中定义了 User 和 Product 之间的一对多关系。

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

产品实体:

<?php

namespace AppBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\HttpFoundation\File\File;
use Vich\UploaderBundle\Mapping\Annotation as Vich;
use Symfony\Component\Validator\Constraints as Assert;


/**
* Product
*
* @ORM\Table(name="product")
* @ORM\Entity(repositoryClass="AppBundle\Repository\ProductRepository")
* @Vich\Uploadable
*/
class Product
{
/**
 * @var int
 *
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
private $id;

/**
 * @var string
 *
 * @ORM\Column(name="reference", type="string", length=150)
 */
private $reference;

 /**
 * @ORM\ManyToOne(targetEntity="Type")
 * @ORM\JoinColumn(name="type_id", referencedColumnName="id")
 */
private $type;

/**
 * @ORM\Column(type="boolean")
 */
public $status;

/**
 * @var string
 *
 * @ORM\Column(name="titre", type="string", length=150)
 */
 private $titre;

用户:

<?php


namespace AppBundle\Entity;

use FOS\UserBundle\Model\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;

/**
* @ORM\Entity
* @ORM\Table(name="fos_user")
*/
class User extends BaseUser
{
/**
 * @ORM\Id
 * @ORM\Column(type="integer")
 * @ORM\GeneratedValue(strategy="AUTO")
 */
protected $id;

public function __construct()
{
    parent::__construct();
    // your own logic
}
}

如何自动获取?

4

2 回答 2

0

我遇到了同样的问题,我的意思是,在某些情况下,我只需要在我的 SELECT 中获取当前记录的用户信息,有时我需要从数据库中获取完整的用户列表

也许我找到的解决方案可以帮助你:

在 easyadmin 选择中获取登录的用户信息

为了简单起见,您必须覆盖easyadmin formbuilder并仅询问当前登录的用户信息

$formBuilder->add('user', EntityType::class, array(
                'class' => 'AppBundle:User',
                'query_builder' => function (EntityRepository $er) {
                    return $er->createQueryBuilder('u')
                    ->where('u.id = :id')->setParameter('id',$this->getUser()->getId());
                },
            ));
            return $formBuilder;
于 2018-08-09T23:14:54.137 回答
0

我们可以提供更多细节吗?实体和控制器,因为我认为您没有使用好的 targetEntity

于 2018-07-25T15:28:18.647 回答