Заполните свойство сущности с помощью API Symfony - PullRequest
0 голосов
/ 10 февраля 2020

У меня есть Symfony сущность со свойством ($user), которое должно быть заполнено из внешнего API (Keycloak).

Это мой класс:

namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity(repositoryClass="App\Repository\ShareRepository")
 * @ORM\HasLifecycleCallbacks
 */
class Share
{
    /**
     * @ORM\Id()
     * @ORM\GeneratedValue()
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column(type="datetime")
     */
    private $createdAt;

    private $user;

    public function getId(): ?int
    {
        return $this->id;
    }
    public function getCreatedAt(): ?\DateTimeInterface
    {
        return $this->createdAt;
    }
    public function setCreatedAt(\DateTimeInterface $createdAt)
    {
        $this->createdAt = $createdAt;
    }
    public function getUser()
    {
        return $this->user;
    }
    public function setUser($user)
    {
        $this->user = $user;
    }
}

У меня также есть служба UserManager, где я могу запрашивать пользователей в Keycloak, но я не могу внедрить службу в сущность, поэтому я не могу ее использовать.

Так что мой вопрос, как можно Я заполнил свой Share объект $user свойство? Я мог бы сделать это на каждом контроллере, но тогда мне пришлось бы повторить эту логи c для каждого метода контроллера ...

Я также не хочу использовать событие "onLoad" doctrine как Я не хочу вызывать API-интерфейс keycloak, если никто не запрашивает $share->getUser().

Как будто бы мне нужно было вызывать API для получения свойства Share class $user, но как Я сказал, что не могу позвонить в службу UserManager от моего лица.

...