CakePHP:在Component中查询?

时间:2010-01-17 19:12:23

标签: cakephp components

在创建CakePHP组件时遇到问题,甚至可能出现问题。基本上,我需要实现几个问题,可以在我的布局中随处访问(侧栏统计等)。

当我尝试在Component中查询时,我收到有关在非对象上调用函数的错误。

该死的,有人可以解释一下吗?

干杯!

2 个答案:

答案 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结构感兴趣,我们可以帮助您提供有关以通用方式运行所需查询的更多信息。