Zend_Db_Table_Rowsetを拡張する2
以前、Zend_Db_Table_Rowsetを拡張するという記事をあげましたが、
不備というか使いづらい点があったので修正しました。
deleteト等を行う前に、foreach や、更新を行っていると、
rowset内カウンタの関係で、 validでfalseが返ってきたので、
処理の前後に、rewindでカウンタを0に戻す処理を追加しました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | class MyRowset extends Zend_Db_Table_Rowset_Abstract { public function delete() { $this->rewind(); if (!$this->valid()) { return; } foreach ($this as &$row) { $row->delete(); } } public function save() { $this->rewind(); if (!$this->valid()) { return; } foreach ($this as &$row) { $row->save(); } $this->rewind(); } public function __set($key, $value) { $this->rewind(); if (!$this->valid()) { return; } foreach ($this as &$row) { $row->{$key} = $value; } $this->rewind(); } } |