我正在使用Symfony 2.0.14,我想在表单模板中显示默认值。
一个FormType绑定到一个实体,当我想添加额外的字段时,我知道选项property_path = false允许添加非实体字段,对吗?
当我遇到相反的情况时,我想设置一个没有表单字段的实体字段。 好吧,我只需要给“createForm”一个默认实体。
但我怎样才能以模板形式呈现它?
控制器代码:
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);
GameType代码:
public function buildForm(FormBuilder $builder, array $options){
$builder->add('teams', 'collection', array( 'type' => new RoleType()));
}
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 %}
答案 0 :(得分:0)
如果您只想显示实体字段值(不将整个实体传递给视图),可以使用以下方式打印它:
{{ form.vars.value.type }}
(假设您的角色实体具有类型属性)。
编辑:我意识到你已经进入了循环。尝试使用以下方法找出正确的属性路径:
{% for role in form.teams %}
{% debug role %}
{% endfor %}