Symfony параметры доступа из services.yaml в Entity - PullRequest
0 голосов
/ 03 апреля 2020

В Symfony 5.0 Мне нужно получить доступ к параметрам, определенным в services.yaml внутри сущности. При добавлении параметра parameter_bag в services.yaml в мою сущность, например

App\Entity\MyEntity:
    class: App\Entity\MyEntity
    calls:
        - [setParameterBag, ['@parameter_bag']]

, он работает, если я создаю новую сущность с

$ myEntity = new MyEntity ();

Затем пакет параметров вводится с помощью моей функции setParameterBag(..) в MyEntity. php определяется следующим образом:

private $params;
public function setParameterBag(ParameterBagInterface $params) {
    $this->params = $params;
}

Но если объект загружается из БД $this->params, он равен нулю. Как правильно (или каким-либо образом) внедрить пакет параметров в сущность?

1 Ответ

2 голосов
/ 03 апреля 2020

Этот подход неверен, вы никогда не должны вводить что-либо в сущности, ни параметры, ни классы. Сущности должны хранить только данные и должны быть независимыми от всего.

Каждый раз, когда сущность создается с помощью 'new', зависимости не добавляются.

Вы должны вызывать $ this- получить ('serviceName') от вашего контроллера.

, если вы хотите добавить параметр к объекту, просто используйте установщик.

public function setParam1($param1) {
    $this->param1 = $param1;
}
...