【发布时间】:2013-12-21 01:45:40
【问题描述】:
假设我将自定义 symfony2 表单类型定义为服务,我想在我的控制器中的这个自定义表单类型中获取我定义的默认值。
例如,我想根据在此自定义表单类型中选择的值过滤我的数据。
我已经检查了 AbstractType 类,但是没有函数可以获取从我的自定义表单类型定义的解析器默认值。
我不想使用实体来存储这些简单的数据,它只是 3 行数据。
<?php
namespace Jariff\AdminBundle\Form\CustomType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
class JariffSalutationType extends AbstractType
{
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'empty_value' => '---',
'choices' => array(
'Mr.' => 'Mr.',
'Mrs.' => 'Mrs.',
'Ms.' => 'Ms.',
)));
}
public function getParent()
{
return 'choice';
}
public function getName()
{
return 'jariff_salutation';
}
}
服务定义
services:
jariff_type_salutation:
class: Jariff\AdminBundle\Form\CustomType\JariffSalutationType
tags:
- { name: form.type, alias: jariff_salutation }
示例用法
$salutation = $this->get('jariff_type_salutation');
$entities = $em->getRepository('JariffMemberBundle:Member')->findBy(array('salutation' => $salution[1]));
谢谢。
【问题讨论】: