Есть ли способ получить доступ к службе в FormType?Доступ к сервису в функции buildForm
Я создал функцию в службе, которая возвращает массив, и я хотел использовать его для заполнения «select».
Благодарим за помощь!
Есть ли способ получить доступ к службе в FormType?Доступ к сервису в функции buildForm
Я создал функцию в службе, которая возвращает массив, и я хотел использовать его для заполнения «select».
Благодарим за помощь!
Если вы не понимаете или не можете вводить службу в тип формы, просто передайте ее конструктору.
пример (контроллер):
$myService = $this->get('my_service');
$form = $this->createForm(new MyFormType($myService), ..., ...);
и MyFormType:
...
private $myService;
public function __construct(MyService $myService)
{
$this->myService = $myService;
}
...
Вы должны объявить свой form type as a service. Затем вы сможете вводить некоторые услуги, как для любой другой услуги!
# src/Your/OwnBundle/Resources/config/services.yml
services:
your_own.service_outputing_an_array:
class: Your\OwnBundle\ServiceOutputingAnArray
your_own.form.type.your_type:
class: Your\OwnBundle\Form\Type\YourType
arguments:
- @your_own.service_outputing_an_array
tags:
- { name: form.type, alias: your_type }
Тогда служба, которую вы хотите, будет введена в качестве первого аргумента в конструкторе вашего типа формы.
Вот что я действительно не понимаю ... Как я могу поместить массив (вывод функции в Сервис), который я хочу в файле app/config/config.yml? Что-то непонятно, но мне жаль, что я не знаю, что. – Anthony
О, хорошо, документация для вас непонятна! Я обновляю свой ответ так. – Gnucki
Скажите, если это недостаточно ясно с обновлением. – Gnucki
Просто вводят услугу, как вы бы с любым другим классом. – qooplmao