Получите аутентификацию FosUser для сохранения в Easy Admin Entity (ЖУРНАЛ ПОЛЬЗОВАТЕЛЯ)

У меня есть продукт, управляемый 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
}
}

Как получить автоматически?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
0
0
112
2

Ответы 2

Можно подробнее? Оба объекта и контроллер, потому что я думаю, что вы не используете хороший targetEntity

спасибо @ luis-rosario. См. Вопрос об обновлении. Сохранение сущности управляется непосредственно простым администратором.

mokas 25.07.2018 17:39

У меня была такая же проблема, я имею в виду, в некоторых случаях мне нужно было получить ТОЛЬКО ТЕКУЩУЮ ЗАПИСАННУЮ ИНФОРМАЦИЮ ПОЛЬЗОВАТЕЛЯ ВНУТРИ МОЙ ВЫБОР, и иногда мне нужно было получить полный список пользователей из базы данных

возможно, найденное мной решение может вам помочь:

Получите информацию о зарегистрированном пользователе в 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;

Другие вопросы по теме