Thi*_*sta 3 forms service dependency-injection symfony
我有一个我创建的服务(DependencyInjection),我在我的控制器上使用它:
$this->get("service_name")->someMethod()
Run Code Online (Sandbox Code Playgroud)
我想知道如何在我的Form类上使用它.
这是我的示例形式的类:
namespace Company\SampleBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;
class AnswerType extends AbstractType {
public function buildForm(FormBuilder $builder, array $options) {
// I want use: $this->get("service") here, how can i use that?
$builder->add('answer', 'textarea');
}
public function getName() {
return 'answer';
}
public function getDefaultOptions(array $options) {
return array(
'data_class' => 'Company\SampleBundle\Entity\Answer',
);
}
}Run Code Online (Sandbox Code Playgroud)
谢谢
你可以使用它$options来实现这一目标.这意味着您需要相应地修改getDefaultOptions.
public function getDefaultOptions(array $options) {
return array(
'service' => null,
'data_class' => 'Company\SampleBundle\Entity\Answer',
);
}
Run Code Online (Sandbox Code Playgroud)
在您的控制器中,当您调用时createForm()
使用$options参数,如下所示:
$this->createForm('Answer', null, array('service' => $service))
Run Code Online (Sandbox Code Playgroud)