如何從窗體事件調用Service Container對象?Symfony - 如何從表單事件調用服務容器對象?
我創建了一個表單,網站管理員可以創建書籍。我想創建一個Sylius產品時,通過這種形式創建的書:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('title', TextType::class, array(
'attr' => array('class'=>'block1')
))
->addEventListener(
FormEvents::PRE_SET_DATA,
array($this, 'onPreSetData')
)
;
}
public function onPreSetData(FormEvent $event)
{
$book = $event->getData();
$form = $event->getForm();
$productFactory = $this->container->get('sylius.factory.product');
}
爲此,我需要達到「sylius.factory.product」服務爲解釋有:
$productFactory = $this->container->get('sylius.factory.product');
我可以從任何控制器訪問它,但不幸的是,我無法從我定義的BookType類訪問它。
下面是Symfony的返回,當我嘗試從buildForm()或onPreSetData訪問它()函數的錯誤:
公告:未定義的屬性:FrontendBundle \表格\的BookType :: $容器
化妝'BookType'的服務,並通過'@ sylius.factory.product'作爲參數傳遞給它。 – ArtOsi