2012-02-25 10 views
-1

cakephp 1.3を使用しています。ページングに奇妙な問題があります。複数のコントローラでページネーションコードを使用しています。ページネーションの前のボタンと数字は私が私の見解でcakephpページネーションの前後に表示されない

<?php 
    if(!empty($zipcodes)){ 
     echo "<div class='pagination'>"; 
     echo @$this->Paginator->prev('« Previous', null, null, array('class' => 'disabled')); 
     echo @$this->Paginator->numbers(); 
     echo @$this->Paginator->next('Next »', null, null, array('class' => 'disabled')); 
     echo '<div style="float:right;padding:5px;color:#000">'.$this->Paginator->counter().'</div>'; 
     echo "<div class='clear'></div>"; 
     echo "</div>"; 
    } 
?> 

をこのコードを使用していると私は、カスタムクエリ結果.Iはapp_model.phpで改ページコードを含んページ付けていますように私のコントローラで、私はページネーションコントローラを使用していた細かい を働いています。 マイontrollerコードは、いずれかのページネーションは一部だけコントローラのために働いている理由私はwrong.??Andをやっているものを私に指摘することができ

var $paginate = array(
         'Zipcode' => array('limit' => 5, 
             'order' => array('id' => 'desc'),           


        ) 
        ); 

私のクエリと操作

 $tsql = " SELECT Zipcode.* ". 
        " FROM zipcodes AS Zipcode ". 
        " WHERE Zipcode.region_id=0 "; 
       $conditions = array(
           'tsql'=>$tsql, 
          ); 
       $tmp = $this->paginate('Zipcode',$conditions); 
       $this->set('zipcodes', $tmp); 

です。???事前におねがいします。

答えて

1

まず、コントローラー上部の改ページを変更してください。 Zipcodeを削除します。それはちょうど次のようになります。

var $paginate = array(
    'limit' => 5, 
    'order' => array('Zipcode.id' => 'desc'),           
); 

は第二に、私はあなたが$ TSQLで達成しようとしているのかわからないけど、私の知る限り、あなたは条件としてSELECT文を渡すことはできません。あなたはこのようなORM特定の条件を記述する必要があります。

その後
$this->paginate = array(
    'conditions' => array('Zipcode.region_id' => 0), 
); 

は、あなたがこれを行うことができジップコードを設定する:

$this->set('zipcodes', $this->paginate('Zipcode')); 

またはこちら側の注意点としては

$data = $this->paginate('Zipcode'); 
$this->set(compact('data')); 

echo @$this->Paginator->prevがあるべきecho $this->Paginator->prevであり、すべての@をそれらの行から削除する必要があります。それはコーディングが貧弱なことです。理由のためにあなたが無視しているのかどうかはわかりませんが、悪いです。

+0

いいえ、私はコミュニティサイトで上記の方法を使用しています。それはうまくいきます...しかし、問題を起こしているコントローラーのいくつか...そして@について...私はそれをエスケープするために使っています値は空です..thnxあなたの努力のためにもっと欲しい...私はあなたの提案でもまたそれを通り抜けることができるといいです。 – jack

+0

'$ tsql'の使い方は、あなたが別の場所でそれを扱うカスタムメソッドを持っていない限り正しくありません。私はこれを生産しようとしており、私はエラーが発生します。クエリ上でZipcodeテーブルの 'tsql'カラムを探す条件を設定しています。あなたがCakePHP ORMをカスタマイズするのをやめているなら、誰もあなたのためにこの質問に答えることができません。あなたは実際にCakePHPを意図した適切な方法で使用するか、あなたのコードを振りかざすべきです。しかしあなたの投稿に書いている方法は間違っています。 –

+0

私はあなたに詳細なメールを送りました。このメールに:cdburgess + [email protected] – jack

関連する問題