2011-03-11 88 views
0

我想要做的是以下幾點:CakePHP模型中的變量:如何從另一個控制器訪問它們?

我有一個名爲 「控制」 模式:

class Control extends AppModel { 
    var $name = 'Control'; 
    var $myVariable: 

    function getMyVariable() { 
     $this->$myVariable = 'hello'; 
     return ($this->$myVariable); 
    } 
    function getMyVariable2() { 
     $myVariable2 = 'hello'; 
     return ($myVariable2); 
    } 
} 

然後,從另一個控制器我做的:

class TestsController extends AppController { 

var $name = 'Tests'; 
var $uses = array('Test','Control'); 

    function index() { //whatever } 

    function doStuff() { 
     $aux = $this->Control->getMyVariable(); //not working, variable not declared 
     $aux2 = $this->Control->getMyVariable2(); //works 
} 

我認爲(可能錯誤),我可以像在任何其他OO語言中一樣在模型類中聲明一個變量作爲屬性(或屬性),並從應用程序的其他位置訪問它,但我猜這在CakePHP中不起作用。我錯過了什麼嗎?有沒有其他方法可以做到這一點?我的意思是,在模型中有一個變量(內容不是來自表格),並從其他控制器/視圖訪問它?

回答

2

$this->$myVariable是「變量變量」(或在這種情況下,變量屬性)的語法。正確的語法是$this->myVariable。 CakePHP不會修改PHP OOP的the basics

雖然在getter中設置一個變量是很奇怪的,但你不應該那樣做。
另外,如果你正在使用getter,你應該使屬性protectedprivate,否則它是沒有意義的。

+0

是的,我是這樣一個小菜!額外的$是我的問題,我不習慣PHP中的OOP。實際上我並沒有使用getter或setter,而只是舉一個函數的例子。非常感謝您的快速回復! –

相關問題