![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 207 Pomógł: 0 Dołączył: 7.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
Sprawdzam klase w Zend_Frameworku. I mam taką metodę w klasie Zend_Db_Table_Abstract o nazwie 'select'.Która ma zawratość :
I zwraca mi taki ciąg znaków " SELECT `album`.* FROM `album` " zamiast obiektu .Sprawdzałem za pomocą instrukcji echo.O co tu chodzi? proszę o pomoc |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 121 Pomógł: 26 Dołączył: 2.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Zend_Db_Table_Select to praktycznie taki QueryBuilder.
A dlaczego zastosowanie echo zwraca Ci stringa, zamiast obiektu? Zend_Db_Table_Select posiada metodę assemble() (która nadpisuje metodę klasy bazowej - patrz niżej), która "wypluwa" normalne zapytanie SQL. Zend_Db_Table_Select dziedziczy po Zend_Db_Select, który to posiada implementację magicznej metody __toString():
W momencie, kiedy robisz echo $select, wywoływane jest __toString(), czyli praktycznie assemble(). Chcesz, żeby Ci zrzuciło obiekt, to skorzystaj z var_dump albo print_r albo wbudowanego w Zenda: Zend_Debug::dump() (taki var_dump na sterydach). -------------------- Works for me => u mnie działa - blog o (o)programowaniu i nie tylko
meet.php - darmowe meetupy związane z PHP |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 0 Dołączył: 5.01.2011 Ostrzeżenie: (0%) ![]() ![]() |
No dobra zgadza się.Ale bez użycia echo musi mi przecież zwrócić " SELECT `album`.* FROM `album` " żeby wybrać tabelkę.I sprawdzałem że nie jest używane w trakcie wywoływania fetchAll.A musi przecież dostać ten kawałek zapytania.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 580 Pomógł: 85 Dołączył: 25.03.2010 Skąd: Skrzyszów :) Ostrzeżenie: (0%) ![]() ![]() |
Chodzi Ci o przekazanie selecta do fetchAll?
Kod $db -> fetchAll($select); Przepatrz też sobie Zend_Db_Adapter_Abstract::fetchAll i Zend_Db_Adapter_Abstract::query, w query wykonywana jest funkcja assemble z selecta |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 0 Dołączył: 5.01.2011 Ostrzeżenie: (0%) ![]() ![]() |
Nie.nie chodzi mi o przekazanie selecta przez fetchAll.Ale o użycie fetchAll w taki sposób:
$album = new Album(); $this->view->albums = $album->fetchAll(); W metodzie fetchAll występuje odwołanie się do metody select(): $select = $this->select(); gdzie potem jest przekazywane do metody _fetch. $rows = $this->_fetch($select); A w zmiennej $select jest nazwa klasy Zend_db_table_select |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 23.06.2025 - 07:37 |