将组件变量传递给cakePHP中的控制器

use*_*368 2 components controller cakephp

如何将cakePHP组件中函数声明的变量传递给控制器​​?我似乎无法解决这个问题.

Sco*_*ell 5

你可以通过多种方式实现这一目标.基本上,您只需从控制器调用所需的组件功能并返回值:

//In controller
$alteredData = $this->MyComponent->doSomethingWithData($data);

//In component
//You can also pass $data by reference if you want to alter it directly.
public function doSomethingWithData($data){
    //alter data in some way
    return $newData;
}
Run Code Online (Sandbox Code Playgroud)

根据文档,您还可以从组件直接访问控制器,以便可以从组件调用控制器方法.

//In component
private $Controller;
public function initialize($controller){
    $this->Controller = $controller;
}

public function doSomethingWithData($data){
    //alter data in some way
    $this->Controller->set('data', $data);
}
Run Code Online (Sandbox Code Playgroud)