2011-07-20 7 views
1

他の方法で私の発見を得ることができますが、これはページネーションでは機能しません。私は間違って何をしていますか?ビュー内のコントローラーのCakePHPカスタムページネーション/ページネーターが期待どおりに機能しない - 何が間違っていますか?

出力:

SQL Error: 1054: Unknown column 'fields' in 'where clause' 

Warning (2):** Cannot modify header information - headers already sent by (output started at... 

コントローラのアクション:

... 
$cond = array(
     'fields'  => array('id', 'name', 'provider_network_url', 'application_url'), 
     'conditions' => array('PlanDetail.id' => $id), 
     'contain' => array(
      'Company' => array('fields' => array(
       'id', 
       'name', 
       'company_logo_url', 
       'plan_detail_by_company_landing')), 
      'Plan' => array('fields'  => array('id', 'monthly_cost'), 
       'Applicant' => array('fields' => array('id', 'name')), 
       'Age'  => array('fields' => array('id', 'name')), 
       'State'  => array('fields' => array('id', 'name')), 
       'Zip'  => array('fields' => array('id', 'title')), 
       'PlanDetail' => array('fields' => array('id', 'name')), 
      ))); 
    $planDetails = $this->paginate('PlanDetail', $cond); 
    $this->set(compact('planDetails', $planDetails)); 
... 
+0

SQLクエリが何を生成していますか? (それを見るには、デバッグを2に設定する必要があります)。そして、 '$ this-> set(compact( 'planDetails'));' –

答えて

0
$this->paginate = array(
     'fields'  => ...., 
     'conditions' => ...., 
     'contain' => array(
      'Company' => ..., 
      'Plan' => ....)); 
    $this->set('planDetails', $this->paginate())); 
+0

私は根本的に何かをやっていなければなりません。私は今あなたの提案で配列を引き出すことができますが、私の条件節: 'conditions' => array( 'PlanDetail.id' => $ id)は結果に適用されていません。期待するだろう。たとえば、[PlanDetail]レベルのものにはアクセスできますが、['Plan']にアクセスしようとすると無効なインデックスが取得されます。しかし、[計画]は期待どおりに配列に表示されています。これはすべて私が標準のfind()を使用するとうまくいきます.. – OldWest

+0

生成されたSQLを読んでください。ケーキは、条件を設定できる場所で結合された1つのクエリではなく、複数の検索クエリを使用します。 – dogmatic69