Как использовать параметры Symfony в пользовательской сущностиPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как использовать параметры Symfony в пользовательской сущности

Сообщение Anonymous »

Это проект Symfony 3.

В сущности User мне нужно реализовать метод getRoles(). У меня есть частный член $roles, который представляет собой массив, и я добавил его в методы сериализации и unserialize.

public function getRoles()
{
if (count($this->roles) == 0) {
$this->roles = { ... read from db ... };
}
return $this->roles;
}


Проблема, с которой я столкнулся, заключается в том, что в части... чтения из базы данных... мне приходится использовать некоторые параметры из файла options.yml< /код>. Обычно $this->container->getParameter(...) выполняет эту работу. К сожалению, из сущности у меня нет доступа к контейнеру.

Мой вопрос: Как я могу получить доступ к параметрам.yml из сущности?
Могу ли я как-то внедрить необходимые параметры?

Другой вопрос: нужно ли мне также сериализовать $roles > или их нужно читать при каждом запросе?

--- РЕДАКТИРОВАТЬ ---

Эта логика кажется мне правильной.

getRoles()Функция должна передать роль пользователя в пакет безопасности. Это достигается путем запроса частных членов и отношений ORM. Единственная проблема заключается в том, что мне нужно определить определенные группы, поскольку они не имеют одинаковых имен во всех развертываниях. Вот почему мне нужны параметры.yml.

Вот фрагмент сущности User, реализующий AdvancedUserInterface.

public function getRoles() {
$ADMIN_GRP = "ADMIN_GROUP"; // I need this from parameters.yml
$SUPPORT_GRP = "SUPPORT_GROUP"; // I need this from parameters.yml

$roles = ['ROLE_USER'];
foreach ($this->memberships as $m) {
if ($m->getGroupId() == $SUPPORT_GRP)
array_push($roles, "ROLE_SUPPORT");

if ($m->getGroupId()) == $ADMIN_GRP)
array_push($roles, "ROLE_ADMIN");
}
return $roles;
}


Подробнее здесь: https://stackoverflow.com/questions/446 ... ser-entity
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»