0

私はcakephp 2.1を使用しており、次のように3つのテーブルを定義しています。

   `industries(id, name);`
   `movies(id, name, industry_id),` 
   `trailers(id, name, movie_id);`

特定の業界の予告編をページ付けしたいと考えています。したがって、私が書いたコードは以下のとおりです。

  $this->paginate = array(
                    'Industry' => array(
                        'contain' => array(
                            'Movie' => array(
                               'order' => 'Movie.release DESC', 
                               'Trailer' => array(
                                  'conditions' => array(
                                       'Trailer.id !=' => $trailer_id
                                   )
                                )
                             )
                         ), 
                         'conditions' => array(
                             'Industry.id' => $id
                         )
                      )
                  );

'limit'forを指定すると'Trailer'、正しい数の結果が得られますnullが、予告編を含まない映画の配列が得られます。特定の業界向けに指定されたトレーラーの制限数を取得するのを手伝ってください. 作品は最も高く評価されます。

4

1 に答える 1

1

contain鍵を間違った場所に置いているようです。モデルの前に定義する必要があります。

<?php
$this->paginate = array(
  'contain' => array(
    'Industry' => array(
      'Movie' => array(
        'order' => 'Movie.release DESC', 
        'Trailer' => array(
          'conditions' => array(
            'Trailer.id !=' => $trailer_id
          )
        )
      )
    )
  ),
    'conditions' => array(
      'Industry.id' => $id
  )
);
于 2013-05-07T11:11:27.973 に答える