如何在cake php中的组件中使用Set函数?
class TestComponent extends Object
{
//etc
$this->set('User', $user);
}
我收到错误
Fatal error: Call to undefined method TestComponent::set()
如何纠正这个问题?
答案 0 :(得分:7)
function startup($controller) { $this->controller = $controller }
function something() {
$this->controller->set('User',$user);
}
Cake将Controller引用传递给Component的启动功能。您需要在组件中保留一个引用,以便稍后在自定义函数中使用。
请参阅此处http://book.cakephp.org/1.3/en/view/996/Creating-Components#MVC-Class-Access-Within-Components-998
答案 1 :(得分:0)
由于大多数时候从控制器调用Component方法,因此可以从控制器中的函数返回值。 如果您想为视图层设置变量,则可以使用
$this->Controller->set('varForView',varValue);
这是因为组件具有一个类变量,用于实例化它的Controller实例。