2012-08-11 2 views
0

나는 영화 웹 사이트 프로젝트에서 일하고있다. 영화 페이지 당 5 리뷰를 제한해야합니다.cakephp에서 재귀를 제한하는 방법

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

나는 1 개 개의 동영상 정보를 얻고 그 영화와 관련된 모든 (거의 20 지금은) 리뷰있어 위의 코드를 사용하여. 그렇다면 리뷰를 5로 어떻게 제한 할 수 있습니까?

+0

물론, 나를 위해 작동한다면 받아 들일 것입니다. 나는 나를 위해 일하지 않는 것을 받아 들일 수 없다. –

답변

0

아무도 해결 방법을 모른다 고 생각합니다. 일시적으로 해결할 수있는 방법을 찾았습니다. 누군가가 모범 사례에 대해 말해주십시오.

누군가가 대답해야하는 경우 pls가 모범 사례에 답변합니다.

+0

하나의 쿼리 만 실행하는 관련 모델의 결과를 제한 할 방법이 없으므로 모범 사례가 없습니다. 두 번째 쿼리를 실행하거나 복잡한/원시 SQL 쿼리를 실행하여이를 수행해야합니다. – rlcabral

1

당신이 시도 할 수 있습니다 :

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

아니요, 작동하지 않습니다. 영화 모델에 리뷰 ID가 없습니다. Pls 내 대답을 확인하십시오. 나는 그것을 고쳤다. 하지만 모범 사례가 필요해. –

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

를, 각 영화에 대한 5 MovieReview를 얻을 수 있습니다은

을 반환

내 영어로 죄송합니다.

+1

옳은 대답 일지라도 주저하지 말고 코드가하는 것을 설명하는 텍스트를 추가하십시오. – AFract