0

私は映画のウェブサイトプロジェクトに取り組んでいます。映画ページごとに5件のレビューを制限する必要があります。

$this->Movie->find('first', array(
    'conditions' => array('Movie.url' => $req ), // URL to fetch the required page
    'recursive' => 1
));

上記のコードを使用して、1つの映画の詳細と、その映画に関連するすべての(今のところほぼ20の)レビューを取得しています。では、どうすればレビューを5つに制限できますか?

4

4 に答える 4

1

あなたはこれを試すことができます:

$this->Movie->find('all', array(
    'conditions' => array('Movie.url' => $req ), // URL to fetch the required page
    'limit'=>5,
    'recursive' => -1
));
于 2012-08-12T09:31:39.040 に答える
1

解決方法は誰にもわからないと思いますが、一時的に解決できる方法を見つけました。誰かがベストプラクティスについて教えてください。

$movie = $this->Movie->find('first', array(
     'conditions' => array('Movie.url' => $req ),
 'recursive' => 0
));
$this->loadModel('MovieReview');
$movieReview = $this->MovieReview->find('all',array(
    'conditions' => array('MovieReview.movie_id' => $movie['Movie']['id'] ),
    'limit' => 5,
    'recursive' => -1
));
$movie['MovieReview'] = $movieReview;

誰かがこれに答える必要がある場合、plsはベストプラクティスに答えます。

于 2012-08-11T13:35:16.167 に答える
0

アソシエーションを試して、制限オプションを設定します

     /**
     * hasMany associations
     *
     * @var array
     */
    public $hasMany = array(
        'MovieReview' => array(
            'className' => 'MovieReview',
            'foreignKey' => 'movie_id',
            'dependent' => false,
            'conditions' => '',
            'fields' => '',
            'order' => '',
            'limit' => '25',
            'offset' => '',
            'exclusive' => '',
            'finderQuery' => '',
            'counterQuery' => ''
        )
    );
于 2014-02-25T22:57:18.930 に答える
0
$this->Movie->find('all', array(
    'conditions' => array('Movie.url' => $req ), // URL to fetch the required page
    'contain' => array('MovieReview' => array('limit' => 5))
));

これにより、返された映画ごとに5つのMovieReviewのみを取得できます

私の英語でごめんなさい

于 2015-02-11T16:05:05.040 に答える