2013-05-09 17 views
1

如何在Cake 1.3中使用Cake里面的组件功能?如何在组件中使用“set”,特别是在cakephp中?

class DevicesComponent extends Object 
{ 
    function startup($controller) 
    { 
    $this->controller = $controller; 
    } 
    function push() 
    { 
     $this->set('data', $data); 
     $this->controller->set('data', $data); 
    } 


} 

我收到以下错误 致命错误:调用未定义的方法DevicesComponent ::设置()。

我检查不可用现有的同样的问题,但链接'Set' in Components of Cake PHP

回答

1

尝试从您的push功能删除了$this->set('data', $data)

function push() 
{ 
    $this->controller->set('data', $data); 
} 

而且使用代替startup功能如下:

public function initialize(){ 

    $this->controller =& $controller; 

} 
+0

是的,我做同样的事情..类DevicesComponent扩展对象 { \t功能启动( $控制器) \t { \t \t $ this-> controller = $ controller; \t} \t功能推送() { \t \t $这 - >控制器 - >设置( '数据',$数据); } } 将错误报告为“致命错误:调用非对象的成员函数set()” – AnNaMaLaI 2013-05-09 09:42:03

+0

我已更新答案。 – Alvaro 2013-05-09 09:48:52

+0

为什么这是一个被接受的答案?这是不正确的。组件甚至没有beforeFilter()回调。 – ADmad 2013-05-09 12:25:19

0

只删除行$this->set('data', $data);和错误wi会消失。您已在下一行中具有正确的语句,通过控制器实例$this->controller->set('data', $data);设置view var。

0

试试这个代码,它可能工作..

function startup(&$controller) 
    { 
    $this->controller = $controller; 
    } 

而在推送功能

function push() 
    { 
    $this->controller->set('data', $data); 
    } 
相关问题