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()
}

当我加载我的页面时,所有调试给我的都是“空”。当我使用测试功能时再次相同?

请帮忙?我做错了什么?

谢谢,格伦

4

1 回答 1

7

Controller::set() sets a view var, not a class var. If you want a class var inherited by all sub-classes you would do $this->Menu = 'Some value'; and access with $this->Menu.

于 2012-09-23T17:50:00.350 回答