2014-09-03 84 views
0

我正在使用cakephp框架。我的数据库,课程和模块表中有两个表格。那些表是相关的,课程有很多模块。基本上我想获得关于课程和模块的数据,但是需要具体的领域。我想获得课程的ID和标题以及模块的ID和标题。Cakephp:如何获取关联模型上特定字段的数据

此代码:

$courses_taken = $this->Course->find('all', array(
    'conditions' => array('Course.id' => $course_id_list), 
    'fields' => array('Course.id', 'Course.title') 
)); 

给我:

array(
    (int) 0 => array(
     'Course' => array(
      'id' => '1', 
      'title' => 'course 1' 
     ), 
     'Module' => array(
      (int) 0 => array(
       'id' => '1', 
       'course_id' => '1', 
       'title' => 'module 1', 
       'image' => null, 
       'content' => 'Lorem ipsum', 
       'voice_over' => null, 
       'created' => '2014-09-03 14:02:25', 
       'modified' => '2014-09-03 14:02:28' 
      ), 
      (int) 1 => array(
       'id' => '2', 
       'course_id' => '1', 
       'title' => 'module 2', 
       'image' => null, 
       'content' => 'Sasdas', 
       'voice_over' => null, 
       'created' => null, 
       'modified' => null 
      ) 
     ) 
    ), 
    (int) 1 => array(
     'Course' => array(
      'id' => '2', 
      'title' => 'course 2' 
     ), 
     'Module' => array() 
    ) 
) 

但我想选择模块特定的领域,以及所以我尝试此代码:

$courses_taken = $this->Course->find('all', array(
    'conditions' => array('Course.id' => $course_id_list), 
    'fields' => array('Course.id', 'Course.title', 'Module.id', 'Module.title') 
)); 

,但给我一个错误:找不到列:1054'字段列表'中的未知列'Module.id'。 请帮助我的人谢谢。

+0

我的理解是,你想获取模块数据与他们的课程数据......我是对的吗? – 2014-09-03 08:37:00

+0

当然有很多模块。所以我想用他们的模块数据获取课程数据。 – 2014-09-03 09:01:56

回答

0

要么你使用像中可容纳和您的发现(某些行为)看起来就像这样:

$courses_taken = $this->Course->find('all', array(
    'conditions' => array('Course.id' => $course_id_list), 
    'fields' => array('Course.id', 'Course.title'), 
    'contain' => array(
     'Module' => array(
      'fields' => array('Module.id', 'Module.title'), 
     ), 
    ), 
)); 
+0

嗨,谢谢你的回答,但我仍然得到同样的结果。 – 2014-09-04 00:45:00

+0

@JerickAllanSernalDimaano您是否已将可控制的行为添加到您的课程模型中? – 2014-09-04 04:03:43

0

试试这个 -

$courses_taken = $this->Course->find('all', array(
    'conditions' => array('Course.id' => $course_id_list), 
    'fields' => array('Course.id', 'Course.title'), 
    'contain' => array('Module.id', 'Module.title') 
)); 
+0

嗨,谢谢你的回答,但我仍然得到同样的结果。 – 2014-09-04 00:44:38

+0

你是否在使用可容忍的行为? – 2014-09-04 04:18:47