有没有办法在FormType中访问服务?
我在Service中创建了一个返回数组的函数,我想用它来填充" select"。
感谢您的帮助!
答案 0 :(得分:1)
您应该声明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 }
然后,您所需的服务将作为表单类型的构造函数中的第一个参数注入。
答案 1 :(得分:0)
如果您不理解或无法将服务注入表单类型,则只需将其传递给构造函数即可。
示例(在控制器中):
$myService = $this->get('my_service');
$form = $this->createForm(new MyFormType($myService), ..., ...);
和MyFormType:
...
private $myService;
public function __construct(MyService $myService)
{
$this->myService = $myService;
}
...