dcat admin 控制器每行自定义按钮如何返回刷新页面
时间: 2023-12-11 19:03:16 浏览: 306
Dcat-admin自定义页面干货
5星 · 资源好评率100%
在 dcat admin 中,可以通过自定义操作列来添加每行的自定义按钮,并且在点击按钮后返回并刷新页面。具体步骤如下:
1. 在对应模型管理页面的 `table` 方法中,找到 `addColumn` 方法,并添加一个新的列。该方法接受两个参数:列的名称和回调函数,回调函数用于生成每行数据对应的 HTML 内容。
2. 在回调函数中,使用 `getRow()` 方法获取当前行的数据,然后生成自定义按钮的 HTML 代码。每个按钮应该包含一个 `data-id` 属性,用于记录当前行的 ID,以便在点击按钮时获取该行的数据。
例如,以下代码可以添加一个名为 `refresh` 的列,该列包含一个刷新按钮,点击按钮后会刷新当前页面:
```php
protected function table()
{
return Dcat\Admin\Grid::make(new Post())
->addColumn('refresh', function (Post $post) {
return '<button type="button" class="btn btn-success btn-sm refresh-btn" data-id="' . $post->id . '">刷新</button>';
})
->render();
}
```
3. 使用 JavaScript 代码监听每个按钮的点击事件,并在点击时获取对应行的 ID,然后执行相应的操作。例如,以下代码可以在页面加载完成后为每个按钮添加点击事件监听:
```js
$(function() {
$('table[data-controller="grid"]').on('click', '.refresh-btn', function() {
var id = $(this).data('id');
window.location.href = window.location.href.split('?')[0] + '?id=' + id;
});
});
```
注意:上面的代码假设当前页面的 URL 中不包含查询参数,如果包含查询参数,需要将 `id` 参数添加到查询参数中。
4. 在对应的控制器方法中,使用 `redirect` 方法返回并刷新当前页面。例如:
```php
public function refresh(Request $request)
{
$id = $request->input('id');
// ...
return redirect()->back();
}
```
5. 保存代码并刷新页面,即可看到新添加的每行自定义按钮,并在点击按钮后返回并刷新页面。
注意:使用这种方式添加的按钮不会出现在操作列中,而是出现在每行数据的自定义列中。
阅读全文