2011-10-04 39 views
2

我想在我的模型中做一個查詢,並在我的控制器中調用它,但出於某種原因,我得到一些錯誤。這裏是我的型號:如何在cakephp中使用複雜查詢?

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));  
} 
} 

任何想法我做錯了什麼?

回答

2

你是模特中調用所以

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

應該

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

因爲query()是類模型的方法是父類的所有其他型號的,樣板房沒有產權房間這就是爲什麼導致錯誤。如果你想通過調用這個控制器的功能,那麼你用$this->ModelName->method()

你的功能select不返回任何東西,你應該將其更改爲

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

很好,謝謝,如果我可以一件事...在我使用'<?php foreach($ get as $ data):?> ....',我得到了'爲foreach()'提供的無效參數。你認爲這個問題可能是什麼? – Patrioticcow

+0

我已更新您的第二個問題的帖子。 – Ehtesham

+0

成功,非常感謝 – Patrioticcow