1

мне нужно написать имя зарегистрированного пользователя в некоторых областях моей модели (у меня родительский документ и некоторые встроенные документы)Sonata Admin - Инъекция SecurityContext в класс администратора

Я впрыскивается контекст безопасности в мой класс администратора

calls: 
    - [ setTranslationDomain, [QMAdminBundle]] 
    - [ setSecurityContext, [@security.context]] 

тогда я написал мой setSecurityContext

public function setSecurityContext($securityContext) { 
    $this->securityContext = $securityContext; 
} 

public function getSecurityContext() { 
    return $this->securityContext; 
} 

public function prePersist($appunto) { 
    $user = $this->getSecurityContext()->getToken()->getUser(); 
    $appunto->setOperatore($user->getUsername()); 
} 

к сожалению, это не написать пользователю ... может быть, это происходит потому, что у меня родительский документ (где я не нужно написать пользователю) и некоторые встроенные документы (где я хочу написать пользователя), которые я покажу в родительской форме (см. изображение)?

Я использую fosuserbundle и комплект, который (easy-) расширяет пользователя сонаты: я должен использовать их, чтобы получить пользователя?

У вас есть предложения по решению этой проблемы?

Большое спасибо

form with embedded documents

ответ

1

Если вы пишете

$appunto->setOperatore($user->getUsername()); 

в функции prePersist, это будет сохранить его, как только вы нажали на кнопку сохранить, прямо перед его сохранялось в Память.

Попробуйте установить оператор на объект appunto в функции __constructor(), и он отобразит имя пользователя в объекте appunto.

Помните, что вы должны установить для каждого пользователя подобъектов как $appunto->getSubObject()->setOperatore($user);

+0

Я сожалею, но я не понял ваш намек: вы предлагаете мне установить оператор в _contructor() в моем Оператора документ? Большое спасибо – satboy78

+0

Да, в вашем конструкторе класса SonataAdmin. Вы можете сделать это прямо в своем конструкторе объектов, если хотите установить его глобальным способом каждый раз, когда вы создаете новый объект –

+0

ok, я пробовал. К сожалению, это не работает, может быть, я чего-то не хватает. – satboy78

 Смежные вопросы

  • Нет связанных вопросов^_^