开发者

Variables in CakePHP's models: how to acces them from another controller?

What I want to do is the following:

I have a model called "Control":

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

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

Then, from another controller I do:

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
}

I assumed (probably wrong) that I could declare a variable as a开发者_运维技巧 property (or atribute) in a model Class like in any other OO languaje, and access it from other places of the aplication, but I guess it doesn't work like this in CakePHP. Am I missing something? Is there any other way to do this? I mean, to having a variable in a model (which content doesn't come from a table) and acces it from other controllers/views?


$this->$myVariable is the syntax for "variable variables" (or in this case, variable properties). The correct syntax is $this->myVariable. CakePHP does not alter the basics of PHP OOP.

Setting a variable in a getter is pretty weird though, you should not do that.
Also, if you are using getters, you should make the property protected or private, otherwise it's somewhat pointless.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜