2010-04-12 6 views
0

CakePHP의 신참 :CakePHP의 액세스하는 다른 컨트롤러

나는 문제가 다른 컨트롤러에 액세스하고 전달하는 데 나의 컨트롤러 중 하나의보기로 데이터 : controllers/landings_controller.php에서

:

var $uses = 'User'; 

function home() { 
    $userdata = $this->User->read(); 
    $this->set(compact('userdata')); 
} 

에서 views/landings/home.ctp :

<?php 
    echo $this->userdata;  
?> 
Notice (8): Undefined property: View::$userdata [APP/views/landings/home.ctp, line 38] 

내가 뭘 잘못 알고하지 않습니다나는 다음과 같은 오류가 발생합니다. 어떤 도움이 필요합니까? 감사합니다.

답변

2
$this->set('userdata', $userdata); 

Compact는 단일 배열을 반환합니다. $ this-> set에는 두 개의 매개 변수가 필요합니다.

http://book.cakephp.org/view/57/Controller-Methods

수정 : 세트가 실제로 연관 배열을 받아 않는다 (감사 다니엘 라이트). 뷰에서 변수를 사용하는 방법은 아래를 참조하십시오.

또한

는 변수 범위에 배치됩니다 - 회원으로 연결되지 - 그래서 당신은보기에이 작업을 수행 할 것입니다 : 오히려,

<?php echo $this->userdata ?> 

하지만 :

<?php echo $userdata ?> 

$ 가정 userdata는 물론 스칼라입니다.

+2

실제로 '$ this-> set'은 원래의 포스터에서 제안한대로 작동합니다. 배열이 매개 변수로 제공되면'$ this-> set'은 배열의 키와 값을 대신 사용합니다. –

+0

Gotcha. 아주 좋아. – webbiedave

0

compact을 사용하는 것이 좋습니다. set()에 대해 자세히 알아야합니다.

관련 문제