Forum polskiej społeczności Zend Framework
Nie jesteś zalogowany.
mam problem z usuwaniem danych z bazy danych. zaden blad sie nie wyswietla i nie mam pojecia w czym jest problem
model napisał:
class Application_Model_DbTable_Category extends Zend_Db_Table_Abstract
{
protected $_name = 'category';
public function deleteCategory($id)
{
$this->delete('id_category = '. (int)$id);
}
}
controller napisał:
public function deleteAction()
{
$id = $this->getRequest()->getPost('id');
$delCat = new Application_Model_DbTable_Category();
$delCat->deleteCategory($id);
}
Offline
powinno być tak:
public function deleteCategory($id)
{
$where = $this->getAdapter()->quoteInto('id_category = ?', (int)$id);
$this->delete($where);
}a więcej znajdziesz w manualu:
http://framework.zend.com/manual/en/zen … ble.delete
http://framework.zend.com/manual/en/zen … ite.delete
EDIT:: a poza tym to witaj na forum ;-)
Ostatnio edytowany przez NorthPole (2010-03-08 18:45:04)
Offline
dzieki!
ten kod tez nie dziala ;/
Offline
i zero błędów? a masz włączone raportowanie błędów w php?
Offline
mam wlaczone i zero bledow
Offline
Co znaczy "nie działa"? Nie usuwa? Może problem leży gdzie indziej - nie ma przekazanej zmiennej post.
Offline
nie usuwa juz wiem ze nie przekazuje zmiennej metoda post bo jak zmienilem zeby przekazywalo id metoda get to dziala w czym moze byc problem ze nie wysyla id zmiennej metoda post?
public function deleteAction()
{
$id = $this->getRequest()->getParam('id');
$delCat = new Application_Model_DbTable_Category();
$delCat->deleteCategory($id);
}<form action="<?php echo $this->url(array('action'=>'delete')); ?>" method="post">
<table border="0">
<tr>
<td>czy chcesz usunac kategorie <?php echo $this->escape($this->category['name']); ?></td>
</tr>
<tr>
<td>
<input type="hidden" name="id" value="<?php $this->escape($this->category['id_category']);?>" />
<input type="submit" name="del" value="Yes" />
<input type="submit" name="del" value="No" />
</td>
</tr>
</table>
</form>Offline
Z tego co wiem, a mogę się mylić
->getParam('id');
Odczytuje parametr id z linka a nie z forma.
Sprawdź tak:
$id= $this->_request->getPost('id');
Offline
tak zgadzam sie z toba ->getParm('id') dziala a ->getPost('id') nie dziala
Offline
Przekaż sobie ID w linku i odczytaj->getParm('id'), problemy z myśleniem?
Offline
przesylanie metoda GET działa! tylko nie wysyla meteda POST a ja chce zeby dane byly wysylane metoda POST
Offline
A sprawdź tak
<input type="hidden" name="id" value="<?php $this->category['id_category'];?>" />
$id = (int)$this->_request->getPost('id');
Przy metodzie POST.
Offline
problem rozwiazany
cale zamieszanie bylo spowodowane tym ze nie bylo echo i input nie posiadal zadnej wartosci
ja mialem tak <input type="hidden" name="id" value="<?php $this->category['id_category'];?>" /> a ma byc tak <input type="hidden" name="id" value="<?php echo $this->category['id_category'];?>" /> dzieki wszystkim za wspolne rozwiazywanie problemu
Offline