2016-01-19 1 views
0

В ResourceBundle, я настроил ресурс «charge.quote»:Sylius ResourceBundle: как переопределить службу формы?

sylius_resource: 
    resources: 
     charge.quote: 
      classes: 
       controller: ChargeBundle\Controller\QuoteController 
       model: ChargeBundle\Entity\Quote 
       repository: ChargeBundle\Repository\QuoteRepository 
       form: 
        default: ChargeBundle\Form\QuoteType 

Я хотел бы знать, как я могу переопределить службу формы, генерируемый в charge.form.type.quote по ResourceBundle. Цель состоит в том, чтобы иметь доступ к контейнеру сервисов из QuoteType.

Я попытался объявить другую службу для переопределения службы, генерируемый ResourceBundle, как это:

<service id="charge.form.type.quote" class="%charge.form.type.quote.class%"> 
    <argument type="service" id="service_container" /> 
    <tag name="form.type" /> 
</service> 

Но пользовательские формы становятся проигнорировано: ResourceBundle генерировать общую форму, от Entity.

Любая идея передать контейнер обслуживания в мой класс формы?

Спасибо!

+0

@ Put12co22mer2 Я не понимаю, что вы имеете в виду. «charge.quote» - это идентификатор ресурса (точнее, псевдоним), а не сама форма. –

ответ

2

Тот же вопрос был недавно решена здесь: https://github.com/Sylius/Sylius/issues/3843

В коротких ответов, взятых из выпуска:

Вы просто определить сервис с таким же именем, так app.form.type.book, например, и дать это псевдоним app_book. Силиус будет использовать его с этого момента. :)

sylius_resource: 
    resources: 
     zdg.registration: 
      templates: EGBundle:Backend/Registration 
      classes: 
       model: ZDG\EGBundle\Entity\Registration 

Услуги:

services: 
    zdg.eg.type.registration: 
     class: ZDG\EGBundle\Form\Type\RegistrationType 
     tags: 
      - { name: form.type, alias: zdg_registration } 
     arguments: [@doctrine, @sylius.context.locale] 

Ваша форма имя типа должно совпадать с псевдонимом. Добавить в ваш тип:

public function getName() 
{ 
    return 'zdg_registration'; 
} 
+0

Спасибо! На самом деле свойство «alias» отсутствовало в теге:

+0

Я считаю, что сервис должен быть назван 'zdg.form.type.registration' за этот комментарий: https://github.com/Sylius/Sylius/issues/3843#issuecomment-170513903 – Jacob

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

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