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

Yii2修改Gii生成的CRUD后点击删除链接仅刷新不删除数据问题

问题根因及修复方案

你遇到的删除失效问题核心是自定义修改删除链接时破坏了Yii框架删除功能的依赖逻辑,按以下优先级排查修复即可:

1. 修复错误的删除链接代码

这是最主要的问题:你直接把Yii生成提交按钮的PHP逻辑硬塞到了a标签的href属性中,既没有调用框架的链接生成方法,也没有绑定触发POST提交的JS逻辑,点击链接只会加载无效地址,相当于页面刷新。
Gii生成的删除功能依赖Yii内置的JS逻辑,通过submit参数触发POST请求调用删除接口,不能直接手写a标签实现。以Yii 1.x为例,正确的删除链接代码如下:

<?php
echo CHtml::link(
    '<i class="fa fa-trash fa-1x pos-relative"></i>Delete',
    '#',
    [
        'submit' => ['delete', 'id' => $data->id],
        'confirm' => 'Are you sure you want to delete this item?',
        'data-id' => $data->id
    ]
);
?>

如果是Yii 2.x,对应写法为:

<?php
echo Html::a(
    '<i class="fa fa-trash fa-1x pos-relative"></i>Delete',
    ['delete', 'id' => $data->id],
    [
        'data' => [
            'confirm' => 'Are you sure you want to delete this item?',
            'method' => 'post',
        ],
    ]
);
?>

2. 修复删除动作的重定向逻辑

你当前actionDelete中写的重定向目标array('@')是无效路由,删除执行成功后会跳转失败,建议修改为列表页路由,比如:

$this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('index'));

3. 确认访问权限

删除接口限制只有登录用户可访问,操作前确认账号处于登录状态,未登录状态下访问会被权限规则直接拦截,不会执行删除逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 06:36:04