如何限制 cakephp 中的递归



我正在做一个电影网站项目。我需要限制每个电影页面 5 条评论。

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

使用上面的代码,我得到了 1 部电影详细信息以及与该电影相关的所有(目前几乎 20 条)评论。那么如何将评论限制为 5 条?

我想没有人知道如何解决,我找到了可以暂时解决它的方法。请有人告诉我最佳实践。

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

如果有人需要回答这个问题,请回答最佳实践。

你可以试试这个:

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

尝试关联,设置限制选项

     /**
     * 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' => ''
        )
    );
$this->Movie->find('all', array(
    'conditions' => array('Movie.url' => $req ), // URL to fetch the required page
    'contain' => array('MovieReview' => array('limit' => 5))
));

有了这个,您每返回一部电影只会获得 5 个电影评论

对不起我的英语

相关内容

  • 没有找到相关文章

最新更新