我有這個字段的字段類型爲entity
我有query_builder
哪些返回查詢和'property' => 'name',
。而我的問題在數據轉換器中需要做些什麼來更改選擇名稱,需要複雜的幾個字段,例如 - name_address_office。使用Symfony的2.8,我需要dataTransformer方法Symfony表單類型實體數據變換器
我的形式
class OutBoundInvoiceRowType extends AbstractType
{
/**
* @var array
*/
private $vatClasses;
/**
* @var Container
*/
private $container;
/**
* @var EntityManager
*/
private $em;
/**
* OutBoundInvoiceRowType constructor.
* @param Container $container
* @param $vatClasses
*/
public function __construct(
Container $container,
$vatClasses
) {
$this->container = $container;
$this->vatClasses = $vatClasses;
$this->em = $this->container->get('doctrine.orm.entity_manager');
}
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('location', 'entity', array(
'class' => Location::class,
'property' => 'name',
'empty_value' => 'Choice Location',
'query_builder' => self::getLocations(),
'required' => false
))
->add('vat', ChoiceType::class, [
'choices' => ?,
'required' => true,
])
$builder->get('vat')
->addModelTransformer(new VatTransformer($this->container));
}
和我VatTransformer:
class VatTransformer implements DataTransformerInterface
{
/**
* @var Container
*/
private $container;
/**
* @var EntityManager
*/
private $em;
/**
* LocationTransformer constructor.
* @param Container $container
*/
public function __construct(Container $container)
{
$this->container = $container;
$this->em = $this->container->get('doctrine.orm.entity_manager');
}
/**
*
* @param Location|null $issue
* @return string
*/
public function transform($issue)
{
if (null === $issue) {
return '';
}
}
}
函數變換$issue
有null
而當形式回報''
沒有什麼變化,仍然有'property' => 'name',
上選擇,數據轉換名稱需要做什麼?
這個現在我有
,這正是我所需要
需要的幾個部分名稱
UPDATE
好的。我有選擇字段vat
,我需要構建數據在選擇增值稅領域像 - 從一些實體字段,示例實體位置(ID,名稱)
這是如何實現與dataTransformer?
數據轉換器可能不是這裏的正確解決方案。你究竟想實現什麼?你使用的是什麼symfony版本。同時檢查['choice_label'](https://symfony.com/doc/current/reference/forms/types/choice.html#choice-label)和['choice_value'](https://symfony.com/ doc/current/reference/forms/types/choice.html#choice-value)選項。 – Yoshi
Symfony 2.8我需要dataTransformer方法 –
目前你的問題中沒有任何東西會暗示你需要一個數據轉換器。只需使用帶回調的'choice_label'就可以得到相同的結果。所以請添加爲什麼你認爲你需要一個數據轉換器。目前,這看起來像你只是想*使用它,因爲你不知道如何解決你的實際問題。 – Yoshi