yii2 BaseActiveRecord findAll () Bedingungen größer oder kleiner als
Ich habe eine Länder-Datenbanktabelle (wie in @ gefundeder Führe) das teste ich yii2 Entwicklungsanwendung. Ich habe Feldpopulation
und ich möchte eine öffentliche Methode in @ erstellCountry
-Modell, um alle Länder mit bestimmten Bevölkerungsgrenzen zurückzugeben. dh alle Länder der Bevölkerung zwischen x und y zurückgeben.
Ich habe Folgendes versucht:
// models/Country.php
....
public function getPopulationBetween($lower, $upper)
{
return Country::findAll(['population' => [">=".$lower, "<=".$upper]]);
}
Im CountryController:
public function actionGetBetween($lower, $upper)
{
print_r(Country::getPopulationBetween($lower, $upper));
}
It gibt ein leeres Array i, e @ zurüArray ()
etzt muss ich wissen, wie man den Zustand von @ einstelfindAll
wie die SQL-Bedingung sein... Where population >= 20000 AND population <= 40000000
d. h. Wie füge ich einen Vergleich zur Bedingung hinzu, wenn ich ein Array verwende?!
Eine andere Seite -oder optionale- Frage, Warum in Country.php beim Aufruf vonfindAll
wie folgt
public function getPopulationBetween($lower, $upper)
{
return $this->findAll(['population' => [">=".$lower, "<=".$upper]]);
}
It gibt einen Fehler zurück:
Unbekannte Methode - yii \ base \ UnknownMethodException
Unbekannte Methode aufrufen: app \ controller \ CountryController :: findAll ()
it anderen Worten, warum muss es statisch aufgerufen werde