<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()
Как я могу получить значение идентификатора в списке? Я хочу, чтобы список всех конфигов в таблице, иметь пользовательский столбец, Редактировать, Удалить
Я хочу нажать «Удалить», после чего элемент будет удален, но как мне получить идентификатор?
Я использовал это (по ссылке из плагина 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>
Вы можете видеть, что это использует jQuery в onClick
Обработчик получает все проверенные идентификаторы и передает их контроллеру.
Тогда в вашем контроллере вы можете сделать это:
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
в контексте индекса (где отображается список ваших моделей).
Если это в рамках действия контроллера, то
<?= $this -> id ?>
должно сработать. Или вы можете сделать что-то вроде
<?php
$isDelete = $this->formGetContext() == 'delete';
?>
чтобы инициализировать его, а затем использовать его как
data-request-data="id: <?= (int) $isDelete ?>"
Как видно Вот