yii2 Condições BaseActiveRecord findAll () maiores ou menores que
Eu tenho a tabela de banco de dados do país (como encontrada emo guia) que eu testeyii2 aplicação de desenvolvimento. Eu tenho campopopulation
e eu quero criar um método público emCountry
modelo para retornar todos os países com limites populacionais específicos. ou seja, retorna todos os países da população entre x e y.
Eu tentei o seguinte:
// models/Country.php
....
public function getPopulationBetween($lower, $upper)
{
return Country::findAll(['population' => [">=".$lower, "<=".$upper]]);
}
No CountryController:
public function actionGetBetween($lower, $upper)
{
print_r(Country::getPopulationBetween($lower, $upper));
}
Retorna uma matriz vazia i, eArray ()
Agora eu preciso saber como definir a condição defindAll
para ser como a condição SQL... Where population >= 20000 AND population <= 40000000
ou seja, como adicionar comparação à condição com o uso de uma matriz ?!
Outro lado - ou opcional - pergunta, Por que no Country.php ao ligarfindAll
do seguinte modo:
public function getPopulationBetween($lower, $upper)
{
return $this->findAll(['population' => [">=".$lower, "<=".$upper]]);
}
Retorna um erro:
Método desconhecido - yii \ base \ UnknownMethodException
Chamando método desconhecido: app \ controllers \ CountryController :: findAll ()
Em outras palavras, por que deve ser chamado estaticamente?