2
 <button
            type="button"
            class="btn btn-small btn-danger icon-trash"
            data-request="onDeleteItem"
            data-control="popup"
            data-request-data="id: " <<<<<<<----
            data-trigger-action="enable"
            data-stripe-load-indicator>
</button>

Configurations.php::controller

public function onDeleteItem()

如何获取列表中 id 的值?我想列出表中的所有配置,有一个自定义列,编辑,删除

我想点击删除,然后它会删除该项目,但我如何获得ID?

4

2 回答 2

4

我已经使用了这个(引用自 RainLab.Blog 插件),它运行良好:

<button
    class="btn btn-default oc-icon-trash-o"
    disabled="disabled"
    onclick="$(this).data('request-data', {
        checked: $('.control-list').listWidget('getChecked')
    })"
    data-request="onDelete"
    data-request-confirm="Are you sure?"
    data-trigger-action="enable"
    data-trigger=".control-list input[type=checkbox]"
    data-trigger-condition="checked"
    data-request-success="$(this).prop('disabled', false)"
    data-stripe-load-indicator>
    Delete all selected
</button>

您可以看到它在onClick处理程序中使用 jQuery 来获取所有检查的 Id 并将其传递给控制器​​。

然后在你的控制器中你可以这样做:

public function index_onDelete()
{
    if (($checkedIds = post('checked')) && is_array($checkedIds) && count($checkedIds)) {

        foreach ($checkedIds as $modelId) {
            if ((!$model = Model::find($modelId)))
                continue;

            $model->delete();
        }

        Flash::success('Successfully deleted those items.');
    }

    return $this->listRefresh();
}

只要确保替换model为您的实际“模型”即可。控制器方法名称上的index_前缀确保我们onDelete在索引上下文(显示模型列表的位置)中引用。

于 2015-06-25T08:10:21.233 回答
0

如果它在控制器的操作范围内,那么

<?= $this -> id ?>

应该管用。否则你可以做类似的事情

<?php
    $isDelete = $this->formGetContext() == 'delete';
?>

初始化它,然后将其用作

data-request-data="id: <?= (int) $isDelete ?>"

如此处所见

于 2015-04-19T14:42:41.790 回答