przesiadlem sie na wersje Zenda >1.10 i mam maly problem. Mam dwie tabele o nazwach tabelaA oraz tabelaB i trzecia tabele laczaca dwie pierwsze - tab. Utworzylem dwa modele TabelaA oraz TabelaB. Czasem przydaloby sie wykonac w modelu np. TabelaA zapytanie do tabeli pomocniczej - po co mnozyc niepotrzebnie modele - tabela pomocnicza sluzy udostepnieniu funkcjonalnosci relacji wiele-wiele. Zapytanie do tabeli pomocniczej realizuje ponizszy kod:
Kod
$select = $this->select()
->from('tab','id')
->where($this->quoteinto('numer = ?', $klasa))
->where($this->quoteinto('oddzial = ?', $oddzial));
$result = $this->fetchRow($select);
->from('tab','id')
->where($this->quoteinto('numer = ?', $klasa))
->where($this->quoteinto('oddzial = ?', $oddzial));
$result = $this->fetchRow($select);
Po wykonaniu w przegladarce otrzymuje:
Cytat
Warning: Select query cannot join with another table in C:\wamp\www\inzynierka\library\Zend\Db\Select.php on line 1345
Nijakiego joina w moim zapytaniu nie widze. Dorzucilem sobie wiec pomiedzy tworzenie zapytania ($select) a wykonywanie ($result) taki kod:
Kod
echo $select; die;
otrzymalem:
Cytat
SELECT 'id'
Kiedy podmienie nazwe tabeli, do ktorej wysylane jest zapytanie na nazwe zgodna z nazwa modelu - wtedy wszystko ladnie dziala (zakladajac ze kolumny w tabelach sa takie same - ale to zalozenie czysto abstrakcyjne).
Pytanie - co robie zle? Nie chce robic kolejnego modelu, bo w projekcie sporo bedzie tych laczacych tabel i nie chce niepotrzebnie mnozyc bytow.
SOLVED: zamiast $this->select() nalezalo uzyc $this->getAdapter()->select()