【发布时间】:2013-05-20 17:02:56
【问题描述】:
我使用的是 Cakephp 2.3.0,正在加载以下组件。
class BreadCrumbsComponent extends Component {
public $components = array();
public $controller = null;
public function initialize($controller) {
}
public function startup($controller) {
$this->controller = $controller;
}
public function beforeRender($controller) {
}
public function shutDown($controller) {
}
public function beforeRedirect($controller, $url, $status = null, $exit = true) {
}
public function handle($controllerName = NULL, $actionName = NULL) {
pr($this->controller->modelClass);
}
}
出错后会报错
Trying to get property of non-object [APP\Controller\Component\BreadCrumbsComponent.php, line 38]
我无法访问 $this->controller 那里。任何原因?如何让它发挥作用?
【问题讨论】:
-
您是否确认正在触发 startup()?如果您按照文档说明正确启动了组件,则应该是这样。因此,由于这很可能是问题所在,您还应该在此处发布相关的控制器代码。
-
尝试用
initialize方法初始化你的控制器。 -
@mark yes startup() 正在工作
-
@MubasshirPawle - 太棒了!我发布了答案以帮助未来的访问者:)
标签: cakephp components cakephp-2.0