2012-02-09 3 views
1

CakeDC Tags 플러그인을 사용하고 있으며 My Books Model에서 Tags를 찾고 싶습니다.HAB ™의 특정 필드 제외 find()

내 Books 컨트롤러에는 페이지가 매겨진 결과를 반환하는 index() 메소드가 있습니다. 현재, 내 index() 메소드는 다음과 같습니다. 내가 디버그 작업을 수행 할 때

function index() { 
    $this-Book>recursive = 0; 
    $this->paginate = array(
     'fields' => array('Book.id','Book.name'), 
     'conditions' => array('Book.status' => 1), 
     'order' => array('Book.id' => 'DESC'), 
     'limit' => 10 
    ); 
    $books = $this->paginate($this->Book); 
    $this->set('books', $books); 
} 

이 내 결과는 : -

Array 
(
    [0] => Array 
     (
      [Book] => Array 
       (
        [id] => 12 
        [name] => A randomly random book 
        [tags] => 
       ) 

     ) 
) 

나는 태그 배열이 채워집니다, 1 대신 0으로 recursiveness을 올리면 및 디버그 출력은 다음과 같습니다 -

Array 
(
    [0] => Array 
     (
      [Book] => Array 
       (
        [id] => 12 
        [name] => A randomly random book 
        [tags] => wicked 
       ) 
      [Tag] => Array 
       (
        [0] => Array 
         (
          [id] => 4f30d76a-20dc-44ce-943c-048c98b7a787 
          [identifier] => 
          [name] => wicked 
          [keyname] => wicked 
          [weight] => 0 
          [created] => 2012-02-07 18:48:58 
          [modified] => 2012-02-07 18:48:58 
          [Tagged] => Array 
           (
            [id] => 4f30d76a-f55c-4ab7-b076-048c98b7a787 
            [foreign_key] => 53 
            [tag_id] => 4f30d76a-20dc-44ce-943c-048c98b7a787 
            [model] => Book 
            [language] => en-us 
            [created] => 2012-02-07 18:48:58 
            [modified] => 2012-02-07 18:48:58 
           ) 

         ) 
       ) 

     ) 
) 

재귀를 높이면 작업이 상당히 잘됩니다. 그러나 CakePHP는 생성되고 수정 된 날짜 필드를 포함한 모든 것을 반환했습니다. 어쨌든 CakePHP가 $ book [ 'Book'] [ 'tags'] 배열 만 채우고 [Tag]와 [Tagged] 배열은 채울 수 있습니까? 감사합니다

답변

2

나는이 특정 플러그인을 모르겠지만, 미세한을 얻을 수있는 일반적인 방법으로는 DB에서 검색되는 데이터의 제어가 Containable 행동이다 그레인 : http://book.cakephp.org/1.3/en/view/1323/Containable

당신이에 추가되면 당신의 팁을위한

$this-Book>recursive = -1; 
$this->paginate = array(
    'fields' => array('Book.id','Book.name'), 
    'contain' => array(
     'Tag'=>array('id','name'), 
    ), 
    'conditions' => array('Book.status' => 1), 
    'order' => array('Book.id' => 'DESC'), 
    'limit' => 10 
); 
+0

안녕 조니, 감사 :이 Book 모델은 Tag의의 이름과 ID를 검색하는 데 쓸 것 인 것이다. 나는 Containable이 확실히 시작할 수있는 장소라는 것을 일찍이 직감했다. 고맙습니다. –