我是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>
答案 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);
}