Methods 从控制器CakePHP 2.0调用组件方法

Methods 从控制器CakePHP 2.0调用组件方法,methods,controller,components,cakephp-2.0,Methods,Controller,Components,Cakephp 2.0,我有一个非常奇怪的问题。 我在控制器上有此允许的功能: public function getUserAvatar($id){ echo "Hello"; $var = this->Url->hello(); echo "bye"; echo $var; } 在Url组件中,我有以下功能: public function hello(){ return "component"; } 我不知道为什么,它打印“你好”,然后停在那里。

我有一个非常奇怪的问题。 我在控制器上有此允许的功能:

public function getUserAvatar($id){ 
     echo "Hello";
     $var = this->Url->hello();
     echo "bye";
     echo $var;
}
在Url组件中,我有以下功能:

public function hello(){
     return "component";
}
我不知道为什么,它打印“你好”,然后停在那里。 它不打印“bye”和“var”

会发生什么事?我快疯了

更新: 现在我意识到,当我从另一个控制器调用一个控制器,而第二个控制器调用一个组件时,这种情况一直发生在我身上。 大概是这样的:

控制器1

 public function test(){
        $controller2 = new Controller2();
        $data = $controller2->getUserAvatar();
    }
public function sayHi(){
     return "hi";
}
控制器2

var $components = array('Component1');

public function getUserAvatar(){
   $this->Component1->sayHi();
   echo "bye";
}
组件1

 public function test(){
        $controller2 = new Controller2();
        $data = $controller2->getUserAvatar();
    }
public function sayHi(){
     return "hi";
}
为了避免这种情况,我必须使用requestAction调用,例如:

$this->requestAction(array('controller' => 'controller1', 'action' => 'test'));

那么…我做错了什么?谢谢。

我已将其关闭:Configure::write('debug',0);顺便检查一下我的更新。您应该在开发时打开调试。
getUserAvatar()
应该是您在用户模型中添加的内容。您不希望有人访问www.example.com/controllerName/getUserAvatar等原因。您正在制作一个新的UsersController()是什么控制器在中,该控制器表示的模型与您的用户模型(如果有的话)有何关联?该函数只是一个示例。问题是,它不起作用。为什么?(我再次更新了代码,现在您可以看到我调用了Controller2)顺便说一句,如果是模型的话。这个简单的例子在CakePHP上不起作用。
$This->Component1->sayHi();
应该是:
echo$This->Component1->sayHi()
如果不起作用,你应该看看是否有一条开启调试的错误消息。好的,在这里键入它是另一个错误。它不起作用,并且在调试设置为2时不会显示任何消息erro。你试过这个例子吗?我不知道它是否起作用。而且这不是第一次。