我尝试在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,
]);
}
}
?>
答案 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');