Ich möchte eine einfache INNER JOIN
zwischen zwei Tabellen in Zend2 tun.TableGateway mit mehreren FROM Tabellen
Konkret würde Ich mag diese in Zend2 tun:
SELECT * FROM foo, bar WHERE foo.foreign_id = bar.id;
Ich habe ein FooTable
:
class FooTable
{
protected $tableGateway;
public function __construct(TableGateway $tableGateway)
{
$this->tableGateway = $tableGateway;
}
public function get($id)
{
$rowset = $this->tableGateway->select(function (Select $select) {
$select->from('foo');
});
}
}
Die $select->from('foo');
gibt einen Fehler zurück:
==>Da dieses Objekt im Konstruktor mit einer Tabelle und/oder einem Schema erstellt wurde, ist es schreibgeschützt.
Also kann ich meine FROM-Anweisung nicht zwicken, um eine einfache innere Verbindung zwischen FooTable
und BarTable
zu entsprechen.
Was im obigen Beispiel ist 'use' bedeuten/tun? Ist das eine Lambda-Funktion? Wird 'use' verwendet, um die externe Variable innerhalb der deklarierten Funktion zu verwenden? –
Ich gehe davon aus, dass Sie über den Abschnitt 'use ($ poolid)' sprechen. Da das $ this-> select eine Funktion() aufruft, musste ich auch eine Variable in meiner Abfrage verwenden, indem ich 'use ($ poolid)' hinzufüge, erlaubt diese Fähigkeit. Normale Funktionen 'Funktionsname ($ var1, $ var2)', aber in diesem Fall machen wir einen Funktionsaufruf aus dem Select – Diemuzi
Macht nichts, ich habe die Antwort ... PHP hat sich seit den 4 Jahren, die ich habe, sehr verändert war davon weg. Hier ist ein schöner Beitrag dazu: http://stackoverflow.com/questions/1065188/in-php-5-3-0-what-is-the-function-use-identifier-should-a-sane-programmer-use –