У меня есть продукт, управляемый EasyAdmin, я ТАКЖЕ ИСПОЛЬЗУЮ fos UserbUNDLE для управления пользователями. Все работает нормально, но когда я добавляю нового пользователя в easyadmin, у меня появляется раскрывающийся список пользователей, но я хочу, чтобы пользователь автоматически прошел проверку подлинности.
Я определил отношение «один ко многим» между пользователем и продуктом в атрибуте класса 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
}
}
Как получить автоматически?




Можно подробнее? Оба объекта и контроллер, потому что я думаю, что вы не используете хороший targetEntity
У меня была такая же проблема, я имею в виду, в некоторых случаях мне нужно было получить ТОЛЬКО ТЕКУЩУЮ ЗАПИСАННУЮ ИНФОРМАЦИЮ ПОЛЬЗОВАТЕЛЯ ВНУТРИ МОЙ ВЫБОР, и иногда мне нужно было получить полный список пользователей из базы данных
возможно, найденное мной решение может вам помочь:
Получите информацию о зарегистрированном пользователе в 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;
спасибо @ luis-rosario. См. Вопрос об обновлении. Сохранение сущности управляется непосредственно простым администратором.