我正在尝试使用Yii在搜索结果中实现分页。我在浏览记录页面上有分页工作,但由于某种原因,我在搜索工作时遇到了麻烦。
到目前为止,我有以下SQL来生成搜索结果:
SELECT SQL_CALC_FOUND_ROWS DISTINCT user.id FROM user, personal_info WHERE (personal_info.bio LIKE '%a%' ) AND personal_info.user_id = user.id AND user.role = 'F' LIMIT 0, 8;
将其传递给ActiveRecord,如下所示:
$results = $this->findAllBySql($sql);
之后我立即运行此代码:
$rows = $this->findBySql("SELECT FOUND_ROWS() as row_count;");
echo $rows->row_count;
奇怪的是,当我尝试执行上面的代码时,我收到以下错误:
未定义属性“Search.row_count”。
由于某种原因,Yii无法从MySQL检索FOUND_ROWS值。
我的浏览记录页面中有几乎完全相同的PHP代码(但不同的SQL),它完美无缺。不确定为什么在这种情况下Yii无法检索FOUND_ROWS值。我已经尝试直接在MySQL中运行这段代码来查看我的SQL是否有问题,但它检索FOUND_ROWS值没有任何问题 - 只有在我尝试在Yii中执行时才会出现此问题。
知道我可能做错了吗?
非常感谢!
答案 0 :(得分:0)
事实证明我需要在模型中定义$ row_count才能将其识别为我可以参考的变量。