在cakePHP中,Controller设置变量然后访问的变量的最佳方法是什么?

时间:2012-04-23 00:19:51

标签: cakephp variables

新手问题。我希望没有人介意。

在文件AccessesController.php

class AccessesController extends AppController {
    public $name = 'Accesses';
    public $helpers = array('Html', 'Form');

    public function index() {
       $this->aVariable = 123;
    }
}

在文件View / Accesses.ctp

<h1> You came thru the AccessesController and set
    aVariable to <?php echo $this->aVariable?>, happy?</h1>

那里不打印123。它不知道this-&gt; aVariable已设置为123。

我是否应该将这些全局变量与Configure::read / Configure::write一起使用?或者控制器和视图如何访问相同的变量? // Accesses.ctp不知道this-&gt; aVariable已设置为123.

1 个答案:

答案 0 :(得分:1)

将变量从Controller发送到视图:

//Controller
$this->set('variableName', $variableValue);

//View
echo $variableName;

如果您要发送多个变量,通常会使用PHP's compact()

//Controller
$var1 = 'pizza';
$var2 = 'beer';
$var3 = 'sleep'; //(trying to keep it PG)
$this->set(compact('var1', 'var2', 'var3'));

//View
echo 'The perfect night: ' . $var1 . ' ' . $var2 . ' ' . $var3;