从CakePHP组件到达CakeRequest对象

tra*_*nte 4 php cakephp cakephp-2.0

我正试图从我的自定义组件到达CakeRequest对象.但我不能.在里面的食谱我发现了这个:

CakeRequest是CakePHP中使用的默认请求对象.它集中了许多用于询问和与请求数据交互的功能.在每个请求上创建一个CakeRequest,然后通过引用传递给使用请求数据的应用程序的各个层.默认情况下,CakeRequest被分配给$ this-> request,并且在Controller,Views和Helpers中可用.您还可以使用控制器参考在组件中访问它.

控制器参考意味着什么?我尝试了以下内容.有用.
但我怎么能达到CakeRequest没有传递参数对组件?

// MyController.php
    public function foo(){
        $this->MyUtil->bar($this);
    }

// MyUtilComponent.php
    function bar(&$controller) {
        $a=$controller->request;
        print_r($a);
    }
Run Code Online (Sandbox Code Playgroud)

bfa*_*tto 5

CakePHP组件有一个initialize回调,可用于存储对控制器的引用.将其添加到Component类:

public function initialize(Controller $controller) {
    $this->controller = $controller;
}
Run Code Online (Sandbox Code Playgroud)

然后bar可以是:

function bar() {
    $a = $this->controller->request;
    print_r($a);
}
Run Code Online (Sandbox Code Playgroud)