在同一个Symfony2树枝中编辑具有多个地址的实体

时间:2012-08-16 15:12:01

标签: symfony doctrine entity twig

我有一个代表机构的实体。因此,本机构有多个地址(地址实体),每个地址都有街道,邮政编码等。

事情是:我有一根小树枝,显示有关该机构的所有信息,包括该机构所在地址表。

我想要的只是点击表格中的一个地址并有一个弹出窗口来编辑地址(然后保存按钮会将地址的ID传递给控制器​​功能)。

最好的方法是什么?这里的问题是,在有人点击点击之前,我没有地址的ID。然后我必须用正确的信息填写表格。

这就是我所拥有的:

地址表(在树枝中):

<tbody>
    {% for local in locais %}
        <tr class="odd gradeX"> 
            <td>{{ local.name}}</td>
        <td>{{ local.address}}</td>
            <td>{{ local.postalCode}}</td>
            <td><a title="Editar" class="label label-info" 
                         onclick="editLocal('{{ local.name}}',  
                                     '{{ local.address}}',
                                     '{{ local.postalCode }}'
                                     '{{ local.id }}');">
                         <i class="icon-edit icon-white"></i></a></td>
        </tr>
    {% endfor %}
</tbody>

然后我有以下javascript函数填充编辑本地表单:

function editLocal(name, address, postalCode, id){

oFormObject = document.forms['editLocal']; 
oFormObject.elements['fccn_corebundle_localtype_id'].value = id;
oFormObject.elements['fccn_corebundle_localtype_name'].value = name;
oFormObject.elements['fccn_corebundle_localtype_address'].value = address;
oFormObject.elements['fccn_corebundle_localtype_postalCode'].value = codigoPostal;

$('#editLocal').modal('show');
};

这里一切正常! 弹出的表格中包含正确的信息!

然后我想要的是获取id并将其传递给控制器​​并使用已编辑的信息,这样我就可以保留现有的本地实体!

我有以下内容!

<form id="editLocal" class="form-horizontal" 
    action= "{{ path('FccnEduroamEntidadeBundle_editLocal', 
                 { 'idLocal': editLocalForm.vars.value.id }) }}" 
    method="post" {{ form_enctype(editLocalForm) }}>

        {{ form_row(editLocalForm.name) }}
        {{ form_row(editLocalForm.address) }}
        {{ form_row(editLocalForm.postalCode) }}
            {{ form_rest(editLocalForm) }}

        <div class="form-actions">
            <button class="btn" type="submit">Guardar</button>
        </div>
</form> 

这里的问题是 editLocalForm.vars.value.id 绝对没有任何回报! 但是当我在chrome上检查这个标签时我有:
    <input type="hidden" id="fccn_corebundle_localtype_id" name="fccn_corebundle_localtype[id]" value="1">

有更好的方法吗?任何帮助都会非常感激。

感谢。

丰索

1 个答案:

答案 0 :(得分:2)

我不确定我是否正确,但我会说:

为什么要在控制器的路径中使用id?

你可以通过POST获取id并将其传递给persist 据我所知,id在表单中通过javascript设置到输入字段

<input type="hidden" id="fccn_corebundle_localtype_id" name="fccn_corebundle_localtype[id]" value="1">

所以它应该在你的请求中,你实际上在路线中不需要它。