1

やりたいこと

データベースから特定の条件で引き出されたデータを一覧表示したい。

私は何を持っていて、それは何をしますか

データを呼び出す関数があります。データを取得するとprint_r、正しいものがスローされるため、クエリが直接実行されます。ただし、ディスプレイは機能しません。データベース内のすべてのデータが表示されます。

これが私の機能です:

public function myfunction() {
    $adminExtensions = $this->AdminExtension->find('all',
        array(
            'conditions' => array('location_id'=>'3')
        )
    );
    //print_r($adminExtensions);
    $this->set('adminExtensions', $this->paginate());
}

何が問題ですか

述べたように、問題は、location_id == 3. それはすべてをリストします。

関数の最後の行に絞り込みましたが、そこに正しいコードを取得できないようです。

私の表示ファイル ( myfunction.ctp) は基本的な焼きケーキの PHP インデックス ファイルです。

私は何を間違っていますか?

4

1 に答える 1

1

現在持っているコードは、2 つの異なるfind操作を呼び出します。は、すべてが3$this->AdminExtension->find()の配列を返します。2 番目の呼び出しは、ビューのページネーションに適したすべての可能な結果を​​返します。AdminExtensionslocation_id$this->paginate()

ページ分割された結果をフィルタリングする場合$paginateは、コントローラーで変数を構成するか、呼び出す前に直接行う必要があります$this->paginate

class PostsController extends AppController {
  public $paginate = array(
    'conditions' => array('location_id'=>'3')
  );
}

これにより、コントローラー内のすべての$this->paginate呼び出しのページネーションが調整されます。

1 回の paginate 呼び出しに対してのみ行うには、次のようにします。

public function your_view() {
   $this->set('adminExtensions', $this->paginate('AdminExtension', array('location_id' => '3')));
);
于 2013-02-07T09:34:19.533 に答える