CakePHP模型中的变量:如何从另一个控制器访问它们?

时间:2011-03-11 04:09:49

标签: cakephp variables model

我想做的是以下内容:

我有一个名为“控制”的模型:

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中像这样工作。我错过了什么吗?有没有其他方法可以做到这一点?我的意思是,在模型中有一个变量(哪个内容不是来自表)并从其他控制器/视图中访问它?

1 个答案:

答案 0 :(得分:2)

$this->$myVariable是“变量变量”的语法(或者在本例中为变量属性)。正确的语法是$this->myVariable。 CakePHP不会改变PHP OOP的the basics

在getter中设置变量非常奇怪,你不应该这样做 此外,如果您使用的是getter,则应该设置属性protectedprivate,否则它会毫无意义。