Symfony2如何将标签添加到对象类型字段

时间:2014-02-01 16:49:23

标签: php forms symfony custom-fields

我开始使用Symfony2进行开发,我遇到了一些Forms问题。我使用控制台根据我的实体生成表单字段。一切看起来都不错,但我必须更改字段标签。当涉及到idCapacityUnit时,它基于另一个实体和Symfony,使得该字段看起来像“选择”。现在我想更改此字段的标签。所以我使用了这段代码:

...
->add('idCapacityUnit', 'choice', array('label' => 'My label'))

但Symfony抛出一个错误,我想把错误的数据类型添加到它。我是否需要为此创建另一个Data Transformer?

$builder
            ->add('nameShort', 'text', array('label' => 'Nazwa krótka'))
            ->add('capacityValue', 'text', array('label' => 'Pojemność'))
                  ->add('idCapacityUnit', 'choice', array('label' => 'Jednostka'))
            ->add('idCapacityUnit')
            ->add('priceDetail')
            ->add($builder->create('isPackage', 'checkbox')->addModelTransformer($transformer))
            ->add('lifeTime')
            ->add('components')
            ->add('isActive');

也许有办法把它放在那里:

->add('idCapacityUnit', 'customEntityType:choice', array('label' => 'Jednostka'))

另外我不知道如何将标签值放在语言文件中。我试着:

  1. 在路径src \ Vendor \ NameOfBundle \ Resources \ translations \ VendorNameOfBundle.en.yml
  2. 中创建语言文件
  3. 然后在* Type类中我写了数组('label'=>'form.labels.name_short')
  4. 我在语言文件中

    form:
        labels:
            name_short: "Nazwa krótka" 
    

    然后在浏览器中我看到form.labels.name_short ...

1 个答案:

答案 0 :(得分:0)

一切看起来都不错,但是当谈到语言文件时,你应该将它重命名为消息。#you_lang_code#.yml。然后记住通过输入以下内容来刷新缓存:

php app/console ca:cl

当谈到字段时,您可以执行以下操作:

$builder
->add('idCapacityUnit', null, array('label' => 'form.lables.id_capacity_unit'))
祝你好运!