0%

CakePHP 删除表中数据

本文接,在前文的基础上添加删除用户功能。 效果:访问http://localhost/cakephp/users/del/ID时,会从users和user\_infos两个表删除指定ID的信息 修改users_controller.php,添加del方法:

    function del()
    {
        $delId=(int)($this->params['pass'][0]);
        if($this->User->delete($delId,true))
        {//官方book里是del,api里是delete,其实在1.3版的cakephp里,应该是delete,没有del方法的,这里被困了好久
        //该方法会同时删除关联的其他表的数据
            $this->flash ( '删除成功', '/users/' );
        }else{
            $this->flash ( '删除失败', '/users/' );
        }
        
    }

修改视图模板index.php,添加删除链接:

<table>
<?php 
$arrayHeader=array_keys(array_merge($allUsers[0]['User'],$allUsers[0]['UserInfo']));
$arrayHeader['del']='删除';
echo $html->tableHeaders($arrayHeader);
//生成表头,参数是一个数组,array_merge方法是把两个数组合并
foreach ($allUsers as $thisuser)
{
    $arrayCell=array_merge($thisuser['User'],$thisuser['UserInfo']);
    $delLink=$html->link("删除","/users/del/".$thisuser['User']['id']);
    $arrayCell['delLink']=$delLink;
    echo $html->tableCells($arrayCell);
    //生成行,参数是数组
}
?>
</table>