全局访问变量权限,在我的CakePHP AppController中设置

时间:2012-09-23 17:42:46

标签: cakephp cakephp-2.0

我在尝试使用CakePHP 2.2.2应用程序设置全局变量时遇到问题。我在AppController中定义了以下内容:

 App::uses('Controller', 'Controller');

 class AppController extends Controller {

  function beforeFilter() {

   $MenuTest = "MENU TEST";
   $this->set('Menu', $MenuTest);

  } //End of beforeFilter()
}

这是为了将$ MenuTest设置为全局变量吗?所以我应该可以在我想要的任何控制器或视图上访问$ MenuTest?我错过了什么?

App::uses('AppController', 'Controller');

class PagesController extends AppController {

public $name = 'Pages';
public $uses = array();

 public function display() {
    debug( $Menu);
    die();
    $this->render('home');
 }//End of function display()

 function test () {
    echo $Menu;
    echo 'This is testing a new link';
    die();
 }//End of function test()
}

当我加载我的页面时,所有调试给我的是'null'。当我使用测试功能时,同样如此?

请帮帮忙?我做错了什么?

谢谢,格伦

1 个答案:

答案 0 :(得分:7)

Controller::set()设置视图var,而不是类var。如果您想要一个由所有子类继承的类var,您将$this->Menu = 'Some value';并使用$this->Menu进行访问。