【发布时间】:2012-07-08 20:47:38
【问题描述】:
我使用的是 CakePhp 2.2,我有一个简单的控制器,名为 ProvidersController:
<?php
class ProvidersController extends AppController {
public $components = array('Session', 'Social');
public $layout = false;
public function facebook(){
$this->Social->auth('facebook', 'success', 'error');
$this->render(false);
}
public function google(){
$this->Social->auth('google', 'success', 'error');
$this->render(false);
}
private function success(){
}
private function error(){
}
}
?>
还有这个名为SocialComponent的组件:
<?php
class SocialComponent extends Component {
public function auth($provider, $success, $error){
}
}
?>
如您所见,我在控制器内部创建了 success() 和 error() 方法。现在我传递了这些名称,我想从组件中调用它们。
我只传回调的名字,如何从组件中调用?
谢谢!
【问题讨论】:
-
a) 它们是私有的——地球上没有任何类,除了这个相同的类可以实际调用它们 b) 你的组件不应该触发控制器方法。应该是相反的