質問

I am using cakephp 2.1 and defined 3 tables as follows.

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

I want to paginate the trailers for particular industry. So the code I have written is below:

  $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
                         )
                      )
                  );

If I would specify 'limit' for 'Trailer', I get correct number of results but some null array for a movie which doesn't contain any trailers. Please help me to get the number of specified limit of trailers for particular industry. The work will be most appreciated.

役に立ちましたか?

解決

It looks to me like you've got your contain key in the wrong place. It should be defined before the models.

<?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
  )
);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top