lut 07

Moim zdaniem całkiem przydatna funkcjonalność. Załóżmy, że odczytujemy kolejne wiersze naszego zapytania w pętli foreach i chcemy wykonywać na każdym z wierszy wyniku jakieś dodatkowe obliczenia wywołując jakąś dodatkową metodę.
Aby to zrobić musimy nieco zmodyfikować nasz model danych niech to w dalszym ciągu będzie Model_Guestbook poniżej przykład, nasza tabela ma pola ID, NAME, COUNT, i dla każdego rekordu wyniku chcemy policzyć podatek VAT dla wartości count, metoda nasza niech się nazywa np. tvat()

class Model_Guestbook extends Zend_Db_Table_Abstract
{
    protected $_name="guestbook";
    protected $_rowClass="Model_licz";
    protected $_primary = 'id';
}
class Model_licz extends Zend_Db_Table_Row_Abstract{
    public function tvat($number=22){
        return $this->count * $number/100;
    }
}

Teraz w np. w kontrolerze możemy wykonać taki kawałek kodu:

public function indexAction()
{
    $gb = new Model_Guestbook();
    $rows = $gb->fetchAll();
    foreach ($rows as $row){
        echo $row->count.' podatek: '.$row->tvat().'
'; } }

Jak widać na każdym wierszu wyniku uruchamiana jest dodatkowa metoda która standardowo nie jest zdefiniowana w modelu.

Autor siema \\ tagi: , , ,



Komentarze wyłączone.