想要获得最大值,但查询不起作用

时间:2017-05-14 12:24:01

标签: yii2

我尝试在Yii2中编写一个查询,它向我显示数据库的最高值。不幸的是,我收到错误消息: “在字符串上调用成员函数all()” 如何解决这个问题?

<?php

namespace app\controllers;

use yii\web\Controller;
use yii\data\Pagination;
use app\models\Country;

class CountryController extends Controller
{
    public function actionIndex()
    {


 $query = Country::find();        

 $countries = $query->select('population')->max('population')
   ->all();
			
        return $this->render('index', [
            'countries' => $countries,

        ]);
    }
}

?>

2 个答案:

答案 0 :(得分:1)

您可以使用此

$query = Country::find();        

 $countries = $query->select('population')->max('population');

您也可以使用

$query = Country::find();        
    $countries=$query->select('max(population) as `population`')->one();

它会帮助你:)

您已在表格中添加'population'或其他字段名称,以便在第二次查询中指定值。

答案 1 :(得分:0)

根据您的代码示例,您在all()的结果上调用max(),根据错误消息返回一个字符串。

max()正在返回最大值,因此您可能只需要删除... ->all()

试试这个:

$countries = $query->select('population')->max('population');