Zend Db表删除不起作用

时间:2013-12-23 07:25:20

标签: php zend-framework zend-db

我是zend框架的新手,想要从数据库中删除数据,但删除功能不起作用。请帮帮我。

这里是我的控制器代码。

public function deleteAction()
{

    if($this->getRequest()->isPost())
    {

        $del= $this->getRequest()->getPost('id');

        if($del=="Yes")
        {
            $id =$this->getRequest()->getpost('id');

        $client = new Application_Model_DbTable_Client();
        $id = $this->getrequest()->getparam('id');
        $client->deleteClient($id);

      }
     $this->_helper->redirector('index');
   }
    else
    {
       $id = $this->getRequest()->getparam('id');

       $client   = new Application_Model_DbTable_Client();
       $this->view->client = $client->getclient($id);

    }

    }

这是我的型号代码。

public function deleteClient($id)
{

     $this->delete('Id='.(int)$id);
}

这是我的delete.phtml文件。

<form>
<p>Are you sure that you want to delete


<?php foreach($this->client as $clients): ?>
'<?php echo $this->escape($clients['firstname']); ?>'
'<?php echo $this->escape($clients['lastname']); ?>'
'<?php echo $this->escape($clients['email']); ?>'
 </p>
 <?php endforeach; ?>
<form action="<?php echo $this->url(array('action'=>'delete')); ?>" method="post">
<div> 

<input type="hidden" name="id" value="<?php echo $this->escape($clients["Id"]); ?>"/>

<input type="submit" name="del" value="Yes" />
<input type="submit" name="del" value="No" />

</div>

</form>

2 个答案:

答案 0 :(得分:1)

我知道问题出在哪里,

你正在使用,

$this->getRequest()->getPost('id');

适用于$id$del 所以,如果你得到的是$ id = 1,那么$ del =“yes”将不会是真的!

所以尝试在你的视图脚本中为$ del传递不同的id或者测试包只是暂时删除那个条件..

尝试传递这样的“是”按钮,

<input type="submit" class="btn-glow primary" name="del" value="Yes" />
<input type="submit" class="btn" name="del" value="No" />  

然后使用

 $del = $this->getRequest()->getPost('del');

更新 *

<input type="hidden" name="id" value="<?php echo $this->client['id'];?>"/>

希望这有助于......

答案 1 :(得分:0)

请尝试以下代码:

public function deleteClient($id)
{
  $this->dbAdapter->delete('table_name','Id='.(int)$id);
}