2013-07-20 4 views
1

저는 아이들 전체의 연결 고리를 만들려고했습니다. View 나던은 모델을 사용할 수 있기 때문에. 그것이 내가 생성하는 자신의 도우미를 만드는 이유입니다. 그때 $this->Model->children($current_id, false, 'category'); 사용하지만 문제는 내가 같은 오류가 발생했습니다이CakePHP 2.0에서 children()을 도우미로 가져 오는 방법은 무엇입니까?

Fatal error: Call to a member function children() on a non-object in /user/app/View/Helper/my_helper.php on line 193

내 코드 : 컨트롤러/구성 요소의 범위에서

<?php 
class MyHelperHelper extends AppHelper { 
    var $helpers = array('Html','Paginator','Tree'); 

    function makechildrenlink($current_id, $category_id, $item_id) { 
     $this->Category->children($current_id, false, 'category'); 




    } 
} 

?> 
+0

왜 모델에서 데이터를 가져 오기 위해 뷰 레이어를 사용하고 있습니까? 컨트롤러/구성 요소가 그렇게하여 도우미에게 전달하십시오. 또한,'my_helper.php'는 cake 2.x에서 파일 이름이 어떻게 보이지 않는가? – mark

+0

my_helper.php는 도구처럼 내 도우미를 만들었다. 하나의 my_helper.php에서 함수를 사용하는 항목이 많기 때문에 Helper cant는 children()을 사용하여 Parent의 모든 하위 목록을 만듭니다. – user453089

+1

괴짜 -'$ this-> Category'. 이것이이 도우미에 있어야 할 것을 결코 선언하지 않으면 어떻게 작동 할 수 있습니까? PHP는 마술이 아닙니다. CakePHP는 어느 정도 정도이지만 그리 중요하지는 않습니다. – mark

답변

0

은 데이터 가져 오기해야합니다

$this->loadModel('Category'); 
$categories = $this->Category->children($current_id, false, 'category'); 
$this->set(compact('categories')); // pass it down to the view 

에서을 원하는 항목을 $ 카테고리로 볼 수 있습니다.

echo $this->MyHelper->makeChildrenLink($categories); 
예를 들어

입니다.

의견에 명시된 바와 같이 도우미는 View/Helper/MyHelper.php이어야합니다!

+0

하지만 각 항목에는 사용 기능이 필요합니다. 그들 모두는 다른 카테고리입니다. – user453089

+1

항목을 반복 할 수 있습니다. foreach는 친구입니다. – mark

+0

yap ... 수동 코드를 사용하지 않는 것처럼 보입니다. – user453089