私はcakephp2.1を使用して、次のテーブル構造を含むアプリケーションを開発しています。
1. people(id, name)
2. movies(id, name)
と「人々」のhabtm
映画は次のように表で示されています。
1. castsmovie(id, person_id, movie_id)
2. directorsmovie(id, person_id, movie_id)
3. moviesmusicdirector(id, person_id, movie_id)
4. moviesproducers(id, person_id, movie_id)
5. movieswriter(id, person_id, movie_id)
6. cinematographersmovie(id, person_id, movie_id)
特定の人のために映画をフェッチして、彼のために映画をページングしたいと思います。だから私が書いたコードはコントローラーにあります
$this->paginate = array('Person' => array(
'contain' => array(
'CastsMovie' => array('Movie'),
'DirectorsMovie' => array('Movie'),
'MoviesProducer' => array('Movie'),
'MoviesMusicDirector' => array('Movie')),
'MoviesWriter' => array('Movie'),
'CinematographersMovie' => array('Movie')
),
'conditions' => array('Person.id' => $id)));
結果は次のようになります
array(
(int) 0 => array(
'Person' => array(
'id' => '101',
'name' => 'Darshan Thoogudeep',
),
'CastsMovie' => array(
(int) 0 => array(
'id' => '53',
'movie_id' => '14',
'person_id' => '101',
'order' => '1',
'Movie' => array(
'id' => '14',
'name' => 'Krantiveera Sangolli Rayanna',
)
),
(int) 1 => array(
'id' => '78',
'movie_id' => '19',
'person_id' => '101',
'order' => '0',
'Movie' => array(
'id' => '19',
'name' => 'Saarathi',
)
),
(int) 2 => array(
'id' => '137',
'movie_id' => '35',
'person_id' => '101',
'order' => '1',
'Movie' => array(
'id' => '35',
'name' => 'BulBul',
)
),
(int) 3 => array(
'id' => '153',
'movie_id' => '42',
'person_id' => '101',
'order' => '0',
'Movie' => array(
'id' => '42',
'name' => 'Viraat',
)
)
),
'CinematographersMovie' => array(),
'DirectorsMovie' => array(),
'MoviesMusicDirector' => array(),
'MoviesWriter' => array(),
'MoviesProducer' => array()
)
)
でも、20本までの極限の人の映画を全部撮りたいです。各ページの映画の限界を簡単にページングできるように。.解決策を手伝ってください。