activerecord查询Yii2出错

时间:2017-07-14 07:12:39

标签: activerecord yii2

我宣布:

$query = Country::find();

有效:

$countries = $query->orderBy('name')
->offset($pagination->offset)
->limit($pagination->limit)
->all();

这不起作用:

$countries = $query->orderBy('name')
->all();
  

PHP警告 - yii \ base \ ErrorException htmlspecialchars()期望   参数1为字符串,给定数组

有效:

$countries = $query->where(['country.code' => 'AU'])->count();

这不起作用:

$countries = $query->where(['country.population' > 4444444])->all();
  

无效参数 - yii \ base \ InvalidParamException   运营商''需要两个操作数。

我读过https://github.com/yiisoft/yii2/blob/master/docs/guide/db-active-record.md,但我还不能完全理解这个想法

1 个答案:

答案 0 :(得分:0)

首先'不工作'查询看起来不错,请在此错误中使用堆栈跟踪更新问题。

第二

$countries = $query->where(['country.population' > 4444444])->all();

您在此使用>,将其更改为=>,它会正常运行。如果你想检查这个字段是否多于/少于,你必须像3 params数组那样传递它:

$countries = $query->where(['>', 'country.population', 4444444])->all();