<?php class Mieszkanie extends Zend_Db_Table_Abstract { /** * Odzwierciedlenie struktury bazy danych na obiekty */ protected $_name = 'flat'; protected $_primary = 'id'; 'refTableClass' => 'Budynek', 'onDelete' => self::CASCADE, 'onUpdate' => self::RESTRICT ), 'refTableClass' => 'Inwestycja', 'onDelete' => self::CASCADE, 'onUpdate' => self::RESTRICT ) ); public function __construct() { parent::__construct (); } public function update($param) { $rekordEdit = $this->fetchRow('id = "'.$param['id'].'"'); /** * Musimy usunąć z tablicy parametrów poniższe zmienne, * aby nie były wstawiane do tabeli [unset] */ //unset($param['module'],$param['controller'],$param['action']); $rekordEdit->foto5 = 'zdjecie_5'; //print_r($rekordEdit->toArray()); $rekordEdit->id = $param['id']; $rekordEdit->save(); } } ?>
oraz kontroler:
<?php public function updateAction() { $this->_helper->viewRenderer->setNoRender(); Zend_Loader::loadClass('Mieszkanie', '../application/admin/models/'); $mieszkanie = new Mieszkanie(); $param = $this->_getAllParams(); //print_r($param); $mieszkanie->update($param); $this->_flashMessenger->addMessage('Zaktualizowano rekord!'); //$this->_redirect(BASE_URL."admin/mieszkanie/"); } ?>
chcialem zeby aktualizowal sie rekord. No i problemy:
1. przy tym kodzie kontroler update pokazuje blad:
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
$rekordEdit = $this->fetchRow('id = "'.$param['id'].'"');
na np.
$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.