在创建CakePHP组件时遇到问题,甚至可能出现问题。基本上,我需要实现几个问题,可以在我的布局中随处访问(侧栏统计等)。
当我尝试在Component中查询时,我收到有关在非对象上调用函数的错误。
该死的,有人可以解释一下吗?干杯!
答案 0 :(得分:3)
你在做这样的事吗?
class MyComponent extends object {
function startup(&$controller) {
$this->controller = $controller; // Stores reference Controller in the component
}
function common() {
$data = ClassRegistry::init('MyModel')->myQuery(); // Call the query on the model
$this->controller->set(compact('data')); // Sets data from myQuery in view
}
}
答案 1 :(得分:0)
冒着听起来迂腐的风险,你这样做会非常严重地违反MVC。如果您对此感到满意,可以使用App::import()
从应用中的任意位置加载任何模型(http://book.cakephp.org/view/531/Importing-Controllers-Models-Components-Behaviors-)。
如果您对尝试保留MVC结构感兴趣,我们可以帮助您提供有关以通用方式运行所需查询的更多信息。