我正在使用Yii框架的模型搜索功能进行搜索,但是当我在没有任何过滤器的情况下使用它时,它没有返回完整的结果。 谁能帮忙???
$模型 - >搜索() - >的getData();是我用来获取结果的命令。
以下是我的示例代码: -
PublicKey pubKey = (PublicKey) ksName.getKey(alias, null);
在模型中只是普通的搜索条件
谢谢
答案 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) {
...
}