У меня есть 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
от моего лица.