2011-12-15 10 views
1

複数のモデルの情報を組み合わせる1つの単発ページを作成しようとしています。これは私が使用しようとしているコードです:

public function index() { 
    $this->loadModel('people'); 
    $this->people->find('all', array(
            'order'=>'people.last_name ASC', 
            'conditions' => array(
                 'People.member =' => '1', 
                 ), 
            )); 
    $this->set('people', $this->paginate('people')); 
    } 

しかし、find()に私の呼び出しは$this->set()に影響を与えないようだ、と私はその理由を理解していません。

+0

...あなたがのpaginateに条件をつけない限りのpaginateはあなたの条件を無視すると思います。あなたのモデル名はPerson(人の単数)でなければなりません。また、このリンクからPaginateの使い方についての情報を参照してください。http://book.cakephp.org/view/1232/Controller-Setup – AlexBrand

+0

いいえ、それは独立したコントローラ、つまり「ダッシュボード」コントローラにあります。基本的には、私は様々なモデルデータを使用する表面的に静的なページが必要です。そのようなコントローラでは、さまざまなモデルデータへのアクセスを持つ一度限りのページを生成できます。しかし、どちらの方法でも、モデルの読み込みが 'find()'と 'set'の関係にどのように影響するのか分かりません。 – Jonline

+1

var_dumpで' find'を実行してから '$ this-> paginate( 'people')'をvar_dumpし、違いを見ることができます。 '$ this-> set()'は、ビューテンプレート内で使用する変数(あなたの場合は* $ this-> paginate( 'people')*の結果)を保存します。 –

答えて

1
public function index() { 
    $this->loadModel('people'); 
    $findPeople = $this->people->find('all', array(
            'order'=>'people.last_name ASC', 
            'conditions' => array(
                 'People.member =' => '1', 
                 ), 
            )); 
    $this->set('people', $findPeople); 
    } 

私は、これはあなたがモデルをロードする必要がないことを意味し、あなたのPeopleController、であることを前提としてい

+0

これは、私の質問、正直なところ、正解です。 – Jonline

関連する問題