Symfony Admin生成器:将批处理操作从选择列表转换为链接

时间:2012-03-19 17:25:06

标签: symfony1 doctrine symfony-1.4 doctrine-1.2

在使用admin生成器生成的对象列表中,批处理Action显示在带有提交按钮的选择中。 我想要转换它并获得唯一的链接(例如我有动作删除,我想有一个删除链接,而不是选择操作,而不是单击按钮。)

我有 _list_batch_actions.php 文件,但我无法看到如何获取标签的href:

    <li class="sf_admin_batch_actions_choice">
    <a href="<?php // url_for('@route')?>"> test</a> // this is what i added but not woorking
  <select name="batch_action">
    <option value=""><?php echo __('Choose an action', array(), 'sf_admin') ?></option>
    <option value="batchDelete"><?php echo __('Delete', array(), 'sf_admin') ?></option>
  </select>
  <?php $form = new BaseForm(); if ($form->isCSRFProtected()): ?>
    <input type="hidden" name="<?php echo $form->getCSRFFieldName() ?>" value="<?php echo $form->getCSRFToken() ?>" />
  <?php endif; ?>
  <input type="submit" value="<?php echo __('go', array(), 'sf_admin') ?>" />
</li>

关于如何使用它的任何想法?

1 个答案:

答案 0 :(得分:1)

解决方案一:

批处理操作默认按表单提交。您可以重写模板以放置链接而不是表单。

检查缓存中的自动生成的控制器  (您需要先查看管理页面才能生成缓存)

apps/backend/dev/modules/autoYourModule/actions/action.class.php

你会找到一个函数executeBatch()

您可以复制此功能并将其放入管理模块控制器中,然后修改其行为以执行您所需的操作。

解决方案二:

使用javascript隐藏您的表单,并在您的选择框中输入一个选择删除操作的链接,使用javascript提交表单。