Dwa przykłady:
Kod tpl:
Kod php:
<?php class testobiekt { // ... public function getCos() { $query = $this->db->query("SELECT * FROM `sciagi`"); while ($row = $this->db->fetch_array($query)) $results[] = $row; return $results; } } //... $obiekt = new testobiekt($db); $smarty = new Smarty; $smarty->assign('tplwykonanyobiekt', $obiekt->getCos()); //zmienna pomocnicza dla pierwszej petli ktora dziala $smarty->registerObject('tplobiekt', $obiekt); // przekazanie obiektu dla drugiej petli ktora nie wyświetla nic $smarty->display('tabelka2.tpl'); //... ?>
Więc, jak już wcześniej opisałem w komentarzach, chodzi o to, że są to praktycznie dwie identyczne pętle. Pierwsza jest tylko używana z użyciem zmiennej pomocniczej z tym obiektem i działa prawidłowo a druga która bezpośrednio czyta z obiektu nie wyświetla nic. Według mnie to jest dziwna sprawa.
Co nie gra w tej drugiej pętli. Chciałbym właśnie używać drugiej pętli bo co jak chciałbym np. użyć parametru ? np from={$tplobiekt->getCos -p1 'parametr'}. Pierwsza pętla mi na takie coś nie pozwala i jest praktycznie bez użyteczna dlatego chce zrobić aby zadziałała jakoś ta druga pętla i mógłbym się odwoływać bezpośrednio bez zmiennej pomocniczej.