Problem using join in Zend_Db_Table
Ich stand nun vor folgendem Problem:
Von einem Projekt ableitend sollte ich eine Tabelle mit einer zweiten zusammenführen.
Hierbei wurde anhand der Zend_Db_Table Funktion folgende Abfrage im Model geschrieben:
$resultSet = $this->getDbTable()->fetchAll(
$this->getDbTable()
->select()
->where("category_id = ?", intval($cat))
);
Fügt man jetzt einfach einen ->join() ein bringt er einen Fehler. Einen Blick auf die Zend-Library (select.php) zeigt uns hierbei mehr. Standardgemäß ruft er eine Funktion “setIntegrityCheck()” auf, welche eine Flag auf true gesetzt hat und das Joinen von 2 oder n Tabellen verhindert. Dieses müssen wir beim Query als false-Flag mit übergeben. Zudem ist es jetzt notwendig die “from”-Zuweisung zu deklarieren.
Nachher:
$query = $this->getDbTable()
->select()
->from('premium')
->setIntegrityCheck(false)
->join('premium_translation', 'premium_translation.id = premium.id')
->where("premium.category_id = ?", intval($cat))
$resultSet = $this->getDbTable()->fetchAll($query);