Ich arbeite an einem Active Record Muster (ähnlich RoR/Cake) für meine Zend Framework Bibliothek. Meine Frage ist: Wie finde ich heraus, ob ein ausgewähltes Objekt einen Alias für eine Tabelle verwendet oder nicht?Hole Tabellenalias von Zend_Db_Table_Select
$select->from(array("c" => "categories"));
gegen
$select->from("categories");
und ich gehe dies auf eine Funktion „holen“, die verbindet und so weiter zusätzlich fügt automatisch die Zeilen Beziehungen zu bekommen ... Ich möchte einige benutzerdefinierte SQL hinzufügen ; Entweder "c.id" oder "categories.id" basierend darauf, wie der Benutzer die "from" -Methode verwendet hat.
Ich weiß, ich
$parts = $select->getPart(Zend_Db_Select::FROM);
kann die aus Daten als Array zu erhalten, und der Tabellenname oder Alias scheint in „Schlitz“ 0 des Feldes zu sein. Befindet sich der Tabellenname oder Alias immer im Slot Null? d. h. kann ich zuverlässig verwenden:
$tableNameOrAlias = $parts[0];
Sorry, wenn dies Konvolut ist, aber hoffe, Sie können helfen! :)
Nur ein Hinweis, der richtige Name für das, was Sie "Slot" nennen, ist hier _index_. So ist Array [0] der Index 0, Array ['c'] ist der Index 'c'. – Fractalizer