从Twig中的表单访问映射的实体
我有一个映射到表单的实体,但我不希望所有字段都可编辑,但仍希望显示值 例如,这是我的表单类型:从Twig中的表单访问映射的实体,twig,symfony-forms,symfony-2.4,Twig,Symfony Forms,Symfony 2.4,我有一个映射到表单的实体,但我不希望所有字段都可编辑,但仍希望显示值 例如,这是我的表单类型: class GameHasPlayerType extends AbstractType { /** * @param FormBuilderInterface $builder * @param array $options */ public function buildForm(FormBuilderInterface $builder, array
class GameHasPlayerType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('inTeam', new TeamPositioningCheckboxType())
->add('positionX', new TeamPositioningNumberType(), array(
'attr' => array(
'class' => 'in-table'
)
))
->add('positionY', new TeamPositioningNumberType(), array(
'attr' => array(
'class' => 'in-table'
)
))
->add('exchanged', new TeamPositioningCheckboxType())
;
}
}
此类型具有自定义表单模板:
{% block team_positioning_widget %}
{% spaceless %}
<td>
{{ form_widget(form.inTeam) }}
</td>
<td>
{{ form.player.firstName }} {# Player is not in the form, but inside the mapped entity #}
</td>
{% endspaceless %}
{% endblock %}
{%block team\u positioning\u widget%}
{%spaceless%}
{{form_小部件(form.inTeam)}
{{form.player.firstName}{#player不在表单中,而是在映射的实体#}
{%endspaceless%}
{%endblock%}
从表单中,我希望引用未添加到表单中的映射实体和访问字段
如何从表单对象访问映射实体?您可以通过form.vars.data属性访问映射实体
{{ form.vars.data.firstName }} {# The data attribute is the Player instance #}
或者如form.vars.value所述:
您可以通过form.vars.value访问表单的当前数据:
{{form.vars.value.firstName}
这是行不通的
{form.vars.value}
为空,以及{{form.vars.data}
如何在控制器中创建表单?您是否将实体作为数据传递:$this->createForm(新GameHasPlayerType(),$entity)代码>否我在这样的父窗体中创建此窗体:$builder->add('subForm',new GameHasPlayerType())
aah,现在我得到了它。我需要为选项数组中的实体设置数据
键。非常感谢你的帮助:)这是一个复制到。我在那里发布了一个与版本2.6.7相关的答案。