You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Yii2 SideNav组件中添加确认对话框

在Yii2 SideNav组件中添加删除确认对话框的方法

嘿,你贴的这段代码其实已经完美实现了删除确认对话框的功能!我来给你拆解下关键逻辑,帮你更清楚地理解:

核心实现要点

  • 要给SideNav的菜单项添加确认对话框,只需要在对应菜单项的linkOptions里配置两个关键的data属性:
    • data-confirm:这里填写你想要显示的确认提示文本,比如你代码里的'Apakah yakin'(印尼语的“确定吗?”),换成中文就是'确定要删除这条记录吗?'
    • data-method='post':因为删除操作属于修改数据的动作,按照Web规范应该用POST请求,Yii2会自动帮你处理这个请求方式的转换,同时配合确认对话框

完整可运行代码示例

SideNav::widget([
    'type' => SideNav::TYPE_PRIMARY,
    'encodeLabels' => false,
    'heading' => '<i class="glyphicon glyphicon-cog"></i> Operations',
    'items' => [
        [
            'label' => 'Home',
            'icon' => 'home',
            'url' => Url::to(['/site/home', 'type' => $type]),
            'active' => ($item == 'home'),
        ],
        [
            'label' => 'Delete',
            'icon' => 'trash',
            'url' => Url::to(['delete', 'id' => $model->id_pd]),
            // 这里就是实现确认对话框的核心配置
            'linkOptions' => [
                'data' => [
                    'method' => 'post', // 指定请求方式为POST
                    'confirm' => '确定要删除这条记录吗?' // 自定义确认提示文本
                ]
            ],
        ],
    ],
]);

额外说明

当用户点击这个“Delete”菜单项时,Yii2内置的JavaScript会自动触发确认对话框:

  1. 先弹出你设置的提示文本,等待用户选择“确定”或“取消”
  2. 如果用户点击“确定”,就会以POST方式跳转到你指定的删除接口;如果点击“取消”,则不会执行任何操作

这样既保证了操作的安全性,又符合Web开发的最佳实践~

内容的提问来源于stack exchange,提问作者Yanuar Ihsan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:34:55