2010-01-17 77 views
0

有問題,甚至可能在創建CakePHP組件時遇到問題。基本上,我需要實現幾個quesries,可以在我的佈局中隨處訪問(邊欄統計等)。CakePHP:組件中的查詢?

當我嘗試在組件中查詢時,出現了有關在非對象上調用函數的錯誤。

該死的,有人能解釋我這一個嗎?

乾杯!

+0

我可以用確切的錯誤,或代碼中錯誤源自於) – 2010-01-17 19:30:08

回答

3

你在做這樣的事嗎?

class MyComponent extends object { 
    function startup(&$controller) { 
    $this->controller = $controller; // Stores reference Controller in the component 
    } 
    function common() { 
    $data = ClassRegistry::init('MyModel')->myQuery(); // Call the query on the model 
    $this->controller->set(compact('data')); // Sets data from myQuery in view 
    } 
} 
+0

+1這個解決方案比我更好,因爲它不僅加載模型,但其實例化。當我提供自己的答案時,我忘記了這一點。 – 2010-01-17 21:01:00

+0

聖母!這就是我要的!非常感謝! – Johannes 2010-01-18 15:15:07

0

冒着聽起來迂腐的風險,你會違反MVC非常嚴重的做到這一點。如果您沒有問題,則可以使用App::import()從應用程序的任何位置加載任何模型(http://book.cakephp.org/view/531/Importing-Controllers-Models-Components-Behaviors-)。

如果你有興趣嘗試保留MVC結構,我們也許能夠幫助你需要在通用的方式運行的查詢一些信息。

+1

羅布,我試過這個,但是我需要把一些東西搞砸了。每一個小時我瞭解CakePHP的:) – Johannes 2010-01-18 15:15:37

+0

新的東西,我認爲我們在這裏做什麼是使用CakePHP和漂亮的結構,以添加用於防空火炮應用一個孤立的表,尚未應用的流量或邏輯的一部分。統計表就是一個很好的例子。 – mna 2011-02-03 20:29:33