2014-04-22 86 views
0

我正在使用以下代碼來檢索所有具有相同thread_id的消息,這些消息是我正在處理的客戶門戶項目。使用選項檢索數據問題

public function view_thread($thread_id = null) { 
    if (!$this->Message->exists($thread_id)) { 
     throw new NotFoundException(__('Invalid message')); 
    } 
    $options = array('conditions' => array('Message.thread_id' => $thread_id)); 
    $messages = $this->Message->find('all', $options); 
    $this->set(compact('messages'));  
} 

目前$ thread_id被設置爲一個整數,雖然我最終會喜歡使用一個隨機字符串。

它工作正常,如果$ thread_id也恰好是消息表中的記錄ID例如1,如下表所示,但是,如果$ thread_id單值不以記錄ID對應我得到一個錯誤 -

「/消息/ view_thread/5」在此服務器上未找到

即使有在表中的5

id thread_id subject 
1  1   Test Message 
2  1   Re: Test Message 
6  1   Re: Test Message 
12 1   Re: Test Message 
24 5   New Test Message 
25 5   Re: New Test Message 

的thread_id單$我不能爲我的生活工作到底是怎麼回事,誰能幫助我的消息。

回答

0

我想你missunderstood的$this->Model->exists();它會尋找不$thread_id您提供id場....所以,儘量這 -

public function view_thread($thread_id = null) { 
    if(empty($thread_id)){ 
     throw new NotFoundException(__('Invalid message')); 
    } 

    $options = array('conditions' => array('Message.thread_id' => $thread_id)); 
    $messages = $this->Message->find('all', $options); 

    if(empty($messages)){ 
     throw new NotFoundException(__('Invalid message')); 
    } 
    $this->set(compact('messages'));  
} 
+0

感謝,完美的作品 – djcamo

+0

然後勾選此作爲一個答案...其他人可能會從這裏得到幫助... –