2012-06-12 2 views
0

나는 이것이 상대적으로 흔한 일이라고 생각했지만 어디서나 예제를 찾을 수 없으며 find()에있는 요리 책의 섹션은 주제에 대해 조금도 분명하지 않았습니다. 아마도 그것은 Cake가 여러분이 직접 할 수 있다고 생각하는 것입니다.자신의 ID를 기반으로하는 CakePHP 사용자 조회

내가보기에 배열에서 뷰에 배열로 전달 된 ID를 기반으로 Cake에서 사용자 이름 (현재 로그인 한 사용자가 아닌 ... 다른 사용자)을 검색합니다. 내가 바른 길에있어 경우에 ... 나는이 사용자의 배열을 반환합니다 가정

이 시점에서
public function user_lookup($userID){ 
    $this->User->flatten = false; 
    $this->User->recursive = 1; 
    $user = $this->User->find('first', array('conditions' => $userID)); 
    //what now? 
} 

, 내가 알지도 못하는 : 여기

내가 컨트롤러에있어 무엇 데이터,하지만 어떻게 그 결과를 처리합니까? 배열이 어떻게 생겼는지 어떻게 알 수 있습니까? 그냥 return($cakeArray['first'].' '.$cakeArray['last'])일까요? 나는 몰라.

도움 말 하시겠습니까?

답변

2

반환 된 데이터를 가져와보기에서 변수로 액세스 할 수 있도록하려면 set을 사용해야합니다. set은 컨트롤러에서보기로 데이터를 전송하는 주요 방법입니다. manual에서

public function user_lookup($userID){ 
    $this->User->flatten = false; 
    $this->User->recursive = 1; 

    // added - minor improvement 
    if(!$this->User->exists($userID)) { 
     $this->redirect(array('action'=>'some_place')); 
     // the requested user doesn't exist; redirect or throw a 404 etc. 
    } 

    // we use $this->set() to store the data returned. 
    // It will be accessible in your view in a variable called `user` 
    // (or what ever you pass as the first parameter) 
    $this->set('user', $this->User->find('first', array('conditions' => $userID))); 

} 


// user_lookup.ctp - output the `user` 
<?php echo $user['User']['username']; // eg ?> 
<?php debug($user); // see what's acutally been returned ?> 

더 올바른 대답 때문에

+1

Upvoted (이것이다 기본적인 케이크 물건이 너무 좋은 읽기를 가진 가치가있을 수도 있습니다),하지만 당신은 같은 간단한 두 번 데이터베이스를 쿼리 할 수도 있습니다 조작. 보다 깔끔한 방법은'$ user = $ this-> User-> find (...)'를 수행하고'empty ($ user)'이면 리디렉션하는 것입니다. 또한, 링크는 1.3 매뉴얼 버전을 가리키고, 질문에는 2.0 태그가 붙어 있습니다. –