2014-04-24 30 views
7

Mam tabelę pytań, które mają przechowywać tak wiele pytań. Pytanie związane z question_topics, więc create ma wiele relacji z pytaniem. Teraz to wyglądać tak:hasMany warunek pokaż niepożądane rekordy cakephp 1.3

$this->Question->bindModel(
     array(
      'hasMany' => array(
       'QuestionTopic'=>array(
        'className' => 'QuestionTopic', 
        'foreignKey' => 'question_id', 
        'dependent' => true, 
        'conditions' => array('QuestionTopic.areas_id' => 165), 
        'type' => 'left' 
       ) 
      ) 
     ) 
); 
print_r($this->Question->find('all')); 
die; 

kiedy zobaczyłem wynik to wyglądać tak

Array 
(
    [0] => Array 
     (
      [Question] => Array 
       (
        [id] => 89 
        [user_id] => 1 
        [question_group_id] => 0 
        [question] => jQuery function here 
        [target_id] => 1 
        [type] => 1 
        [order] => 1 
        [description] => additional info here 
        [privacy_friend_id] => 
        [channel_id] => 1 
        [status] => 0 
        [location] => Chandigarh, India 
        [regions] => 307 
        [select_country] => 381 
        [select_states] => 515 
        [created] => 2014-04-15 06:59:44 
        [modified] => 2014-04-15 06:59:44 
       ) 

      [QuestionTopic] => Array 
       (
        [0] => Array 
         (
          [id] => 167 
          [areas_id] => 165 
          [question_id] => 89 
         ) 

       ) 

     ) 

    [1] => Array 
     (
      [Question] => Array 
       (
        [id] => 90 
        [user_id] => 1 
        [question_group_id] => 0 
        [question] => Art 
        [target_id] => 2 
        [type] => 1 
        [order] => 1 
        [description] => addional infomation here 
        [privacy_friend_id] => 
        [channel_id] => 1 
        [status] => 0 
        [location] => Chandigarh, India 
        [regions] => 307 
        [select_country] => 381 
        [select_states] => 515 
        [created] => 2014-04-15 07:52:17 
        [modified] => 2014-04-15 07:52:17 
       ) 

      [QuestionTopic] => Array 
       (
       ) 

     ) 
) 

Chcę tylko pierwszą płytę, która ma pytań temat id 167 nie drugi. Jak mogę to zrobić.

Odpowiedz

11

Nie używaj hasMany, Korzystanie został jeden jak ten

$this->Question->bindModel(
       array(
        'hasOne' => array(
         'QuestionTopic'=>array(
          'className' => 'QuestionTopic', 
          'foreignKey' => 'question_id', 
          'dependent' => true, 
          'type' => 'left' 
         ) 
        ) 
       ) 
     ); 
     print_r($this->Question->find('all',array('conditions'=>array('QuestionTopic.areas_id' => array('165'))))); 
0

Coś takiego?

$question = $this->Question->find('first', array('conditions' => array('QuestionTopic.id' => 167)); 
+2

złym Jean To nie będzie działać .. –

+0

Proszę hasOne to zrobić – Harman