我正在使用cakephp框架。我的数据库,课程和模块表上有两个表。那些表是相关的,课程有很多模块。基本上我想获得有关课程和模块的数据,但有特定的领域。我想获得课程的ID和标题以及模块的ID和标题。
此代码:
$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 :(得分:4)
得到答案,为了使sgt的答案工作,$ actsAs属性应该添加到课程模型中。参考:http://book.cakephp.org/2.0/en/core-libraries/behaviors/containable.html
答案 1 :(得分:0)
要么使用像Containable这样的行为,你的find()将如下所示:
$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'),
),
),
));
答案 2 :(得分: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')
));