1

我正在使用 Symfony 2.0.14,我想在我的表单模板中显示默认值。

好吧,FormType 绑定到一个实体,当我想添加额外的字段时,我知道选项 property_path = false 允许添加非实体字段,对吗?

当我在相反的情况下,我想设置一个没有表单字段的实体字段。好的,我只需要为“createForm”提供一个默认实体。

Howewver 如何在我的模板表单中呈现它?


控制器代码:

public function newAction(Request $request)
{
    $game = new Game();

    $local = new Role();
    $visitor = new Role();
    $local->setType('LOCAL');
    $visitor->setType('VISITOR');
    $game->addRole($local);
    $game->addRole($visitor);

    $form = $this->createForm(new GameType(), $game);

游戏类型代码:

public function buildForm(FormBuilder $builder, array $options){
    $builder->add('teams', 'collection', array( 'type' => new RoleType()));
}

角色类型代码:

public function buildForm(FormBuilder $builder, array $options){
   $builder->add('type', 'text');  // <= I would like read only for end-User 
   $builder->add('score', 'integer');

表单模板:

{% for role in form.teams %}
        <li>
            <div class="role-team">
                {{ role.type }} {# WRONG way, how to do ?  #}
                {{ form_row(role.score) }}
            </div>
        </li>
{% endfor %}
4

1 回答 1

0

如果您只想显示您的实体字段值(而不将整个实体传递给视图),您可以使用以下命令打印它:

{{ form.vars.value.type }}

(假设您的角色实体具有类型属性)。

编辑:我意识到你在循环中。尝试使用以下方法找出正确的属性路径:

{% for role in form.teams %}
    {% debug role %}
{% endfor %}
于 2012-08-06T18:18:50.553 回答