我有一个我创建的服务(DependencyInjection),我在我的控制器上使用它:
$this->get("service_name")->someMethod()
我想知道如何在我的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',
);
}
}
由于
答案 0 :(得分:6)
您可以使用$options
来实现此目的。这意味着您相应地修改了getDefaultOptions
。
public function getDefaultOptions(array $options) {
return array(
'service' => null,
'data_class' => 'Company\SampleBundle\Entity\Answer',
);
}
在您的控制器中,当您致电createForm()
时
使用$options
参数,如下所示:
$this->createForm('Answer', null, array('service' => $service))