2

Sphinx必要なのリストを生成するために使用しIDます。このリストで、言語を使用してID適用し、 Modelメソッドを使用して新しいCActiveDataProviderを作成して返します。filtersSphinxSearch

画像例

$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>

しかし、これは正しく機能しません。[次へ]をクリックすると、リストの終わりがどういうわけか、送信されているURLを再初期化せず、URLが大きくなりすぎて、アプリがクラッシュします。

CListViewは、受信したデータが存在するかどうかを確認するべきではありませんか?Sphinxは登録のIDを与えることができますが、それはもう存在しないか、非アクティブです。

何が起こっているのですか、どうすればこれを防ぐことができますか?

4

1 に答える 1

1

ajaxUrlプロパティとページ付けに関するいくつかの問題があるフォーラムトピックを見つけました。ajaxUrlはページネーションによって無視されているようです。奇妙な、多分それが問題です。

このトピックは次のとおりです:http ://www.yiiframework.com/forum/index.php/topic/21886-problem-with-clistview-and-ajaxurl-property/

最後に、投稿ルートがリストビューではなくデータプロバイダーに設定されていることに注意してください。内部的にリストビューまたはグリッドビューは、ajaxUrlをdataproviderに渡す必要があります。

ページネーションのルートを手動で設定する方法は次のとおりです 。http ://www.yiiframework.com/doc/api/1.1/CPagination#route-detail

$dataprovider->pagination->route = 'site/index';

また、一部が使用されている場合は、ページネーションのパラメーターを手動で設定します($ _GETに付属しているものを含む): http ://www.yiiframework.com/doc/api/1.1/CPagination#params-detail

$dataprovider->pagination->params = array('search' => 'Search string');

$custom_pager_leftリンクhrefをどのように設定する必要があるかもわかりませんか?

于 2013-02-07T09:43:09.610 に答える