使FosUser通过身份验证以持久存在于Easy Admin Entity(USER LOG)中



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

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

/**
* @ORMManyToOne(targetEntity="User")
* @ORMJoinColumn(name="user_id", referencedColumnName="id")
*/
private $user;

产品实体:

<?php
namespace AppBundleEntity;
use DoctrineORMMapping as ORM;
use SymfonyComponentHttpFoundationFileFile;
use VichUploaderBundleMappingAnnotation as Vich;
use SymfonyComponentValidatorConstraints as Assert;

/**
* Product
*
* @ORMTable(name="product")
* @ORMEntity(repositoryClass="AppBundleRepositoryProductRepository")
* @VichUploadable
*/
class Product
{
/**
* @var int
*
* @ORMColumn(name="id", type="integer")
* @ORMId
* @ORMGeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORMColumn(name="reference", type="string", length=150)
*/
private $reference;
/**
* @ORMManyToOne(targetEntity="Type")
* @ORMJoinColumn(name="type_id", referencedColumnName="id")
*/
private $type;
/**
* @ORMColumn(type="boolean")
*/
public $status;
/**
* @var string
*
* @ORMColumn(name="titre", type="string", length=150)
*/
private $titre;

用户:

<?php

namespace AppBundleEntity;
use FOSUserBundleModelUser as BaseUser;
use DoctrineORMMapping as ORM;
/**
* @ORMEntity
* @ORMTable(name="fos_user")
*/
class User extends BaseUser
{
/**
* @ORMId
* @ORMColumn(type="integer")
* @ORMGeneratedValue(strategy="AUTO")
*/
protected $id;
public function __construct()
{
parent::__construct();
// your own logic
}
}

如何自动获取?

我们能有更多的细节吗?实体和控制器,因为我认为你没有使用好的targetEntity

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

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

在easyadmin select 中获取记录的用户信息

为了简单起见,您必须覆盖easyadmin表单生成器,并只询问当前记录的用户信息

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

最新更新