Yii中的模型搜索未返回表的完整结果

时间:2015-10-29 12:23:48

标签: php yii

我正在使用Yii框架的模型搜索功能进行搜索,但是当我在没有任何过滤器的情况下使用它时,它没有返回完整的结果。 谁能帮忙???

$模型 - >搜索() - >的getData();是我用来获取结果的命令。

以下是我的示例代码: -

 PublicKey pubKey = (PublicKey) ksName.getKey(alias, null); 

在模型中只是普通的搜索条件

谢谢

1 个答案:

答案 0 :(得分:1)

$ model-> search()返回一个CActiveDataProvider对象。默认情况下,CActiveDataProvider查询是分页的。这很有用,因为CActiveRecords是内存密集型的,并且在Web应用程序中通常需要分页结果。

您应该循环访问CActiveDataProvider页面或在CActiveDataProvider上禁用分页。

解决方案1:使用CDataProviderIterator循环遍历所有CActiveDataProvider页面

这通常是最佳选择,因为CDataProviderIterator会迭代CActiveDataProvider中的所有结果,从而保持较低的内存使用率。

$results = $model->search();
$iterator = new CDataProviderIterator($results );
foreach($iterator as $model) {
   ...
}

解决方案2:禁用分页(不推荐)

$results = $model->search();
$results->setPagination(false);
foreach($results->getData() as $model) {
    ...
}