Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [FZ] Zend_Db_Table_Rows - problem z funkcja save();
Forum PHP.pl > Forum > PHP > Frameworki
zeta758
mam klase mieszkanie:
  1. <?php
  2. class Mieszkanie extends Zend_Db_Table_Abstract
  3. {
  4. /**
  5. * Odzwierciedlenie struktury bazy danych na obiekty 
  6. */
  7. protected $_name = 'flat';
  8. protected $_primary = 'id';
  9. protected $_referenceMap = array(
  10. "bybudynek" => array(
  11. 'columns' => array('building_id'),
  12. 'refTableClass' => 'Budynek',
  13. 'refColumns' => array('id'),
  14. 'onDelete' => self::CASCADE,
  15. 'onUpdate' => self::RESTRICT
  16. ),
  17. "byinwestycja" => array(
  18. 'columns'  => array('investment_id'),
  19. 'refTableClass' => 'Inwestycja',
  20. 'refColumns' => array('id'),
  21. 'onDelete' => self::CASCADE,
  22. 'onUpdate' => self::RESTRICT
  23. )
  24. );
  25. public function __construct() 
  26. {
  27. parent::__construct ();
  28. }
  29. public function update($param) 
  30. {
  31.  
  32. $rekordEdit = $this->fetchRow('id = "'.$param['id'].'"');
  33.  
  34. /**
  35. * Musimy usunąć z tablicy parametrów poniższe zmienne,
  36. * aby nie były wstawiane do tabeli [unset] 
  37. */
  38. //unset($param['module'],$param['controller'],$param['action']);
  39.  
  40. $rekordEdit->foto5 = 'zdjecie_5';
  41. //print_r($rekordEdit->toArray());
  42.  
  43. $rekordEdit->id = $param['id'];
  44. $rekordEdit->save();
  45. }
  46. }
  47. ?>

oraz kontroler:
  1. <?php
  2. public function updateAction() 
  3. {
  4. $this->_helper->viewRenderer->setNoRender();
  5.  
  6. Zend_Loader::loadClass('Mieszkanie', '../application/admin/models/');
  7. $mieszkanie = new Mieszkanie();
  8.  
  9. $param = $this->_getAllParams();
  10. //print_r($param);
  11.  
  12. $mieszkanie->update($param);
  13.  
  14. $this->_flashMessenger->addMessage('Zaktualizowano rekord!');
  15. //$this->_redirect(BASE_URL."admin/mieszkanie/");
  16. }
  17. ?>

chcialem zeby aktualizowal sie rekord. No i problemy:
1. przy tym kodzie kontroler update pokazuje blad:
  1. Fatal error: Call to undefined method stdClass::toArray() in D:\web\generator_table\application\admin\models\Mieszkanie.php on line 151

2. jesli w motodzie update klasy mieszkanie zmienie
  1. $rekordEdit = $this->fetchRow('id = "'.$param['id'].'"');

na np.
  1. $rekordEdit = $this->fetchRow('id = "44"');

czyli podam liczbe a nie zmienna to mi sie wywala apache - albo wylącza, albo nieznaleziono strony.
Co robie źle? prosze o pomoc.
zeta758
juz sobie poradziłem,
funkcja update tak samo sie nazywala w kontrolerze i tak samo w modelu (w modelu w funkcji update byla znów funkcja update).
Po zmianie nazwy funkcji wszystko zaczeło działać jak należy.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.