如何在cakephp中使用复杂查询?

时间:2011-10-04 06:26:07

标签: php cakephp-1.3

我正在尝试在我的模型中进行查询并在我的控制器中调用它,但由于某种原因我得到了一些错误。这是我的模特:

class Room extends AppModel {
var $name = 'Room';
var $displayField = 'title';
var $actsAs = array('Containable');

function select($qwe){
    $results = $this->Room->query("SELECT * FROM test WHERE qwe= ".$qwe." ");
}

在这种情况下,我得到Undefined property: Room::$room。在控制器中我有:

...
function success(){
    $qwe = "testing"
$this->set('get', $this->Room->select($qwe));    
}
}

关于我做错了什么的任何想法?

1 个答案:

答案 0 :(得分:2)

您正在模型中呼叫

    $results = $this->Room->query("SELECT * FROM test WHERE qwe= ".$qwe." ");

应该是

    $results = $this->query("SELECT * FROM test WHERE qwe= ".$qwe." ");

因为query()是Class Model的一个方法,它是每个其他Model的父类,Model Room没有属性Room,这就是造成错误的原因。如果您通过控制器调用此函数,则使用$this->ModelName->method()

您的函数select未返回任何内容,您应将其更改为

   function select($qwe){
       $results = $this->query("SELECT * FROM test WHERE qwe= ".$qwe." ");
       return $results;
   }