2013-02-05 49 views
0

电影有许多关系和关系属于电影。关系表有电影_id字段。 我想显示电影模型的关系列表。所以在MoviesController.php我有:在cakephp中执行简单查询

public function view($id = null) { 
    if (!$id) { 
     $this->Session->setFlash(__('Invalid Movie', true)); 
     $this->redirect(array('action' => 'index')); 
     } 
    $this->set('Movie', $this->Movie->read(null, $id)); 
    $cid = $this->Movie->read('Relation.id'); 
    $cid_extract = Set::extract($cid, 'Relation.id'); 
    $this->set('planComps', $this->Movie->find('all',array('conditions' => array("movie_id" => $cid_extract)))); 
} 

不过我看

Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'Relation.id' in 'field list' 

SQL Query: SELECT `Relation`.`id`, `Movie`.`id` FROM `myproject`.`movies` AS `Movie` WHERE `Movie`.`id` = 1 LIMIT 1 

但查询我需要的是:

SELECT `Relation`.`id` FROM `myproject`.`relations` AS `relation` WHERE `Movie`.`id` = 1 LIMIT 1 

我在CakePHP中新。请帮忙。

回答

1
$this->loadModel('Relation'); 
$records = $this->Relation->find('all', array(
       'recursive' => -1, 
       'conditions' => array('Relation.movie_id' => $movie_id), 
       'fields' => array('Relation.id') 
      )); 
+0

谢谢你的指导。我如何显示这个$记录?我应该发送它来查看? – sahar

+0

'$ this-> set('records',$ records);'。鉴于您可以使用$记录访问记录。 –

+0

它说:未定义变量:记录[APP \ View \ Movies \ view.ctp,第43行] – sahar