Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZendFramework] Dlaczego metody fetchRow,fetchAll zwracają obiekt? szczegóły na dole
anonim1989
post
Post #1





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 5.01.2011

Ostrzeżenie: (0%)
-----


Witam.Od niedawna analizuje kod ZF.I nie mogę jednego pojąć.Otóż mam w ZF taką metode jak fetchAll która zwraca mi wszystkie rekordy z wybranej tabeli.Gdy zaglądam do klasy Zend_Db_Table_Abstract w której znajduje się ta metoda fetchAll.
Zwraca ona obiekt klasy Zend_Db_Table_Rowset,klasy której konstruktor nic nie zwraca.Dlaczego zwraca obiekt?
Przecież powinna mi zwrócić tablice w której znajdują się rekordy?
bardzo proszę o pomoc
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
darko
post
Post #2





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Cytat(anonim1989 @ 5.01.2011, 15:41:50 ) *
Witam.Od niedawna analizuje kod ZF.I nie mogę jednego pojąć.Otóż mam w ZF taką metode jak fetchAll która zwraca mi wszystkie rekordy z wybranej tabeli.Gdy zaglądam do klasy Zend_Db_Table_Abstract w której znajduje się ta metoda fetchAll.
Zwraca ona obiekt klasy Zend_Db_Table_Rowset,klasy której konstruktor nic nie zwraca.Dlaczego zwraca obiekt?
Przecież powinna mi zwrócić tablice w której znajdują się rekordy?
bardzo proszę o pomoc

Dziwne, bo coś tu nie gra z tym, co napisałeś. Domyślnie dane zwracane są jako tablica asocjacyjna:
  1. abstract class Zend_Db_Adapter_Abstract
  2. {
  3.  
  4. /**
  5.   * User-provided configuration
  6.   *
  7.   * @var array
  8.   */
  9. protected $_config = array();
  10.  
  11. /**
  12.   * Fetch mode
  13.   *
  14.   * @var integer
  15.   */
  16. protected $_fetchMode = Zend_Db::FETCH_ASSOC;


Poza tym, jeśli przypisujesz polu klasy X obiekt bazy danych w ten sposób:
  1. $this->pole = Zend_Db_Table::getDefaultAdapter();

to tak naprawdę zwracasz to, co zostało zdefiniowane w klasie Zend_Db_Table_Abstract czyli
  1. /**
  2.   * Default Zend_Db_Adapter_Abstract object.
  3.   *
  4.   * @var Zend_Db_Adapter_Abstract
  5.   */
  6. protected static $_defaultDb;


Dodatkowo możesz określić sposób zwracania danych za pomocą metody setFetchMode i chyba to jest rozwiązanie Twojego problemu.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 10:04