2013-12-23 3 views
0

Я новичок в zend framework и хочу удалить данные из базы данных, но функция удаления не работает. Пожалуйста, помогите мне.Zend Db Таблица delete not working

Здесь мой код контроллера.

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

какой ошибка поживают ?? прокомментируйте часть переадресации и попробуйте повторить значение $ id ,. –

+0

Спасибо за ответ Ronak Я попробовал это, и он дал значение id, который равен 1. – Tuhin

ответ

0

Пожалуйста, попробуйте ниже код:

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

я вижу, где проблема,

вы используете,

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

как для $id И $del так что если вы получают $ id = 1, как вы говорите, тогда $ de l = «да» не будет правдой!

так пытаются передать другой идентификатор для $ дель в своем скрипте или для тестирования мешка просто удалить это состояние временно ..

попробовать не пройти да нет кнопки, как это,

<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'];?>"/> 

Надеется, что это помогает ..

+0

Я пробовал, но проблема остается – Tuhin

+0

, пожалуйста, проверьте также delete.phtml, если я совершил какую-либо ошибку там. – Tuhin

+0

Почему вы используете скрипт 'foreach' в сценарии просмотра, вы можете напрямую использовать $ this-> client, см. Обновление –