【发布时间】:2013-02-01 09:01:48
【问题描述】:
我使用Sphinx 生成所需ID 的列表。在这个ID 列表中,我使用Sphinx 语言应用filters,然后使用Search 模型方法创建并返回一个新的CActiveDataProvider;
$dataProvider = new CActiveDataProvider('model', array(
'criteria' => $criteria,
'pagination' => array(
'pageSize' => $this->pageSize,
'currentPage' => $this->cp_page - 1,
),
));
在视图中,现在,我有:
<div class="search_result searchconright">
<?php
$custom_pager_left = '
<div class="pagetxt">
<ul class="searchPager">
<li><span>View</span></li>
<li class="page"><a href="" class="page_search_limit">All</a></li>
<li class="page"><a href="" class="page_search_limit page_search_limit_active">3</a></li>
<li class="page"><a href="" class="page_search_limit page_search_limit_active">5</a></li>
<li class="page"><a href="" class="page_search_limit page_search_limit_active">24</a></li>
<li class="page"><a href="" class="page_search_limit">48</a></li>
</ul>
</div>
';
$this->widget('zii.widgets.CListView', array(
'ajaxUrl' => Yii::app()->createAbsoluteUrl('/employer/search'),
'id'=>'listViewSearch',
'dataProvider' => $model->search(),
'template' => "{summary}\n{sorter}\n{items}\n<div style='float:left;width=700px;'>$custom_pager_left<div class='pagetxt'>{pager}</div></div>",
'itemView' => '_index_post',
'enablePagination' => true,
'pager' => array(
'cssFile' => Yii::app()->baseUrl . '/css/clistview.css',
'header' => false,
'firstPageLabel' => 'First',
'prevPageLabel' => 'Previous',
'nextPageLabel' => 'Next',
'lastPageLabel' => 'Last',
),
'summaryText' => '',
'sortableAttributes' => array(
),
));
?>
</div>
但这无法正常工作,因为如果我单击下一步,并且列表结束,不知何故,ajax 代码不会重新初始化正在发送的 url,它会继续与旧 url 连接,直到 url 变得如此大到应用程序崩溃。
CListView不应该验证接收到的数据是否存在吗? Sphinx 可以提供一个注册 ID,该 ID 不再存在或处于非活动状态;
发生了什么,我该如何预防?
【问题讨论】:
-
我认为这可能是寻呼机而不是 CListView。 expanding url 是什么样子的?它一直在添加页面,还是?...
-
ClListView 小部件包括一个寻呼机;解释 EXPANDING url 这个词...我不明白
-
对不起,我的意思是你问题中的那个 url,你提到 ** 它会继续与旧 url 连接,直到 url 变得如此之大以至于应用程序崩溃**。它是否添加了 page/1/page/2/page/3 之类的参数?
-
不,它将旧 url 与新请求 url 连接起来
标签: php yii sphinx dataprovider