1. Yii2 ActiveDataProvider verfügt über eine eigene Paging-Funktion. Normalerweise ist es nicht erforderlich, die Abfrageergebnisse direkt in den Spalten von GridView abzufragen und die ID in einen Namen umzuwandeln , aber so Beim Überprüfen der Debug-Methode wird dieselbe Anweisung mehrmals ausgeführt, was sich auf die Effizienz auswirkt. Ist das gemäß den Nutzungsspezifikationen von Yii2 falsch?
2. Wenn Sie die Spalten der GridView nicht abfragen, um die ID in einen Namen umzuwandeln, wie sollten Sie damit umgehen? Ist es eine gute Idee, eine Multi-Table-Assoziationsabfrage zu verwenden, um die ID in einen Namen umzuwandeln, bevor sie an GridView übergeben wird?
1. Yii2 ActiveDataProvider verfügt über eine eigene Paging-Funktion. Normalerweise ist es nicht erforderlich, die Abfrageergebnisse direkt in den Spalten von GridView abzufragen und die ID in einen Namen umzuwandeln , aber so Beim Überprüfen der Debug-Methode wird dieselbe Anweisung mehrmals ausgeführt, was sich auf die Effizienz auswirkt. Ist das gemäß den Nutzungsspezifikationen von Yii2 falsch?
2. Wenn Sie die Spalten der GridView nicht abfragen, um die ID in einen Namen umzuwandeln, wie sollten Sie damit umgehen? Ist es eine gute Idee, eine Multi-Table-Assoziationsabfrage zu verwenden, um die ID in einen Namen umzuwandeln, bevor sie an GridView übergeben wird?
Eine Kombination aus zwei Methoden:
Fügen Sie beim Erstellen von ActiveDataProvider with() hinzu, zum Beispiel:
<code>$query->with(['store'])->where(['name' => $something]); </code>
Auf diese Weise wird der Inhalt der Store-Tabelle in die Ergebnismenge einbezogen und es besteht keine Notwendigkeit, wiederholt abzufragen.
Es ist wirklich unvermeidlich, Memcache zu aktivieren und die Ergebnisse im Voraus zu speichern, was auch den Datenbankdruck effektiv reduzieren kann.