symfony2 multidelte记录删除

时间:2013-02-26 07:18:40

标签: symfony

我有一个名为index的文件,显示客户查询列表。 我想在那里放多个删除。

我的索引文件列表的代码如下:

 {% block body -%}
<h1>Enquiry list</h1>


<table class="records_list" id="rounded-corner">
    <thead>
        <tr>
    <th>Option</th>
    <th>Id</th>
            <th>Name</th>
            <th>Email</th>
            <th>Subject</th>
            <th>Body</th>
            <th>Actions</th>
        </tr>
    </thead>
    <tbody>
    {% for entity in entities %}
        <tr>
    <td><input type="checkbox" name="multiSelect" id="multiSelect[]" value="{{ entity.id }}"></td>
            <td><a href="{{ path('enquiry_show', { 'id': entity.id }) }}">{{ entity.id }}</a></td>
            <td>{{ entity.name }}</td>
            <td>{{ entity.email }}</td>
            <td>{{ entity.subject }}</td>
            <td>{{ entity.body }}</td>
            <td>

                    <a href="{{ path('enquiry_show', { 'id': entity.id }) }}" title="View"><img src="http://test//bundles/blogger/image/view.png" style="width:30px; height:30px"></a>

                    <a href="{{ path('enquiry_edit', { 'id': entity.id }) }}" title="Edit"> <img src="http://test//bundles/blogger/image/edit.png" style="width:30px; height:30px" > </a>

            </td>
        </tr>
    {% endfor %}
    </tbody>
    <tfooter>

    </tfooter>
</table>

    <ul>
    <li>
        <a href="{{ path('enquiry_new') }}">
            Create a new entry
        </a>
    </li>
</ul>
{% endblock %}

我把复选框放在里面。 我想要的是存储所有id的“multiSelect []”的数组值。 我将它传递给我的控制器。 我不知道如何将此数组值作为我的控制器参数传递。所以请帮帮我 我想在这里传递它。

<tfooter>

      <a href="{{ path('enquiry_edit', " ")  }}">MultiDelete</a>

</tfooter>    

3 个答案:

答案 0 :(得分:0)

您需要使用form。使用没有表单的输入字段总是一种草率的方式。

答案 1 :(得分:0)

我得到了答案。 我创建了表单并将请求传递给控制器​​deleteAction。

在deleteAction方法

我使用$ request-&gt; get('multiSelect')获取请求参数; “multiSelect”输入框的名称。

并使用repositoryclass对象完成了任务。

感谢您的回复。

答案 2 :(得分:0)

我认为最安全的方法是使用onclick生成表单并通过帖子发送的链接。例如:

<a href="{{ path('your_delete_action', { 'id': object.id }) }}" 
   token="{{ token }}"
   data-method="POST"
   object-id ="{{ object.id }}">
   <span class="red"><i class="icon-remove"></i></span>
</a>

点击此链接,您将生成一个表单并将其发送到您的deleteAction

// Every link with an attribute data-method
$("#container").on("click", "a[data-method]", function(event){
    event.preventDefault();

    var target = $(event.currentTarget);
    var method = target.attr('data-method');
    var action = target.attr('href');
    var token = target.attr('token');
    var objectId = target.attr('object-id');

    // Create a form on click
    var formulario = $('<form/>', {
        style:  'display:none;',
        method: method,
        action: action
    });

    formulario.appendTo(target);

    formulario.append("<input name='token' value='" + token + "' type='hidden'/>");
    formulario.append("<input name='id' value='" + objectId + "' type='hidden'/>");

    // Do submit
    formulario.submit();

});