2012-04-01 3 views
0

에서 하나의 쿼리 나는이 개 모델을했습니다. 나는 add() 함수와 뷰 add.ctp를 기본적으로 가지고있다. 이제 그 형식으로 사용자 정보를 보여 드리고자합니다.CakePHP의 외부 모델

class PostsController extends AppController { 
    var $name = 'Posts'; 
    var $helper = array('Html', 'Form'); 
    var $uses = array('User'); 

    public function index() { 
     $this->set('posts', $this->Post->find('all')); 
    } 

    function add() { 
     $user_id = 1; 
     $this->set('user', $this->User->findById($user_id)); 
     if ($this->request->is('post')) { 
      if ($this->Post->save($this->request->data)) { 
       $this->Session->setFlash('Your post has been saved.'); 
       $this->redirect(array('action' => 'index')); 
      } else { 
       $this->Session->setFlash('Unable to add your post.'); 
      } 
     } 
    } 
} 

그러나 이제 추가보기 페이지에는 실제로 트리거 된 두 개의 쿼리가 표시됩니다. 그래서 만약 내가 추가보기 내에서 print_r($user) 난 두 개의 배열과 배열을 받고있어. USER_ID = 1과 게시물에 대한 하나의 및 ID와 실제 사용자에 대한 하나 = 1.하지만 난 그렇게 만 사용자 ID = 1

+0

var'$ user'을 (를) 찾을 수 없습니다. –

+0

id 1을 가진 사용자를 어디에서 받고 싶습니까? 'PostsController :: add()'에? –

+0

죄송합니다,'$ user'은 (는)보기에서 왔어요, 맞습니까? –

답변

2

findById를 호출하기 전에 User 모델에 falserecursive을 설정해보십시오 좀하고 싶습니다 연결된 모델로부터 어떤 데이터도 얻을 수 없습니다. 이와 같이 :

+0

감사! 이제보기에서 User 배열 만 사용할 수 있지만 add-view의 from을 저장할 때 .. 현재 치명적인 오류가 발생합니다. 구성원 함수 save()가 아닌 객체에서 호출 /home/app/Controller/PostssController.php 17 번 줄에. –

+0

17 번 줄이 '$ this-> Post-> save ($ this-> request-> data)'입니까? 그렇다면'Post' 모델을 찾을 수 없다는 것을 의미합니다. 이것은 매우 이상합니다 (자동으로 사용 가능해야합니다). 그러나 컨트롤러 상단의'$ uses' 배열에 항상 추가 할 수 있습니다. 케이크가 모델을 찾지 못하게 할 수있는 네이밍 스키마에 이상한 것이 있습니다 : 컨트롤러 파일은 실제로'PostssController.php'라고 불리우며 두 개의's'가 있습니까? – bfavaretto

+0

실수로 그 파일의 이름을 변경했기 때문에이 두 가지가 발생했습니다. 하지만 Post use를 $ use에 추가하면 어떤 이유로 그 작업과 데이터가 저장됩니다. Post가 실제로 PostsController 내에서 이미 사용 가능해야한다고 말했듯이. 나는 단서가 없다. –