0

CakePHP2.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」だけです。テスト機能を使用する場合も同じですか?

助けてください?私が間違っていることは何ですか?

ありがとう、グレン

4

1 に答える 1

7

Controller::set()クラス変数ではなく、ビュー変数を設定します。すべてのサブクラスに継承されたクラス変数が必要な場合は$this->Menu = 'Some value';、を使用してアクセスし$this->Menuます。

于 2012-09-23T17:50:00.350 に答える