Я хотел бы сделать запрос к базе данных от абонентакак получить доступ ко хранилищу от слушателя
Из хранилища: это легко я использую следующий (для пользователя Exemple объекта, где я хочу извлечения пользователя с ID = 1
$repository = $this->getDoctrine()->getManager->getRepository('NameBundle:User');
$user = $repository->find(1);
Но как я могу сделать это с suscriber
Вот что я пытался ... (без успеха, как я получил следующее от Symfony2:.. «FatalErrorException: Ошибка: вызов неопределенного метода Sdz \ BlogBundle \ Form \ EventListener \ Subscriber :: getEn tityManager()»
namespace Sdz\BlogBundle\Form\EventListener;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Doctrine\ORM\EntityRepository;
class TraductionSubscriber implements EventSubscriberInterface
{
public static function getSubscribedEvents()
{
return array(FormEvents::PRE_SET_DATA => 'preSetData');
}
public function preSetData(FormEvent $event)
{
$form = $event->getForm();
$datas = $event->getData();
$userexist == 'no'
foreach ($datas as $data){
if ($data->getUser()->getId() == 1) { $userexist = 'yes'; $user= $data->getUser(); }
}
if ($userexist == 'no') {
$repository = $this->getEntityManager()->getRepository('SdzBlogBundle:User');
$user = $repository->find(1);
}
$form
->add('notes', 'collection', array(
'type' => new NoteType,
'label' => $user->getName(),
'required' => false,
));
}
}
Похоже, ваш класс не распространяющие подписчика и поэтому getEntityManager не определен. Может быть, я что-то неправильно понял? – DaOgre
@DaOgre мой класс реализует EventSubsriberInterface. Это то, что вы имели в виду? –