cakephp从另一个模型打印数据

时间:2016-11-03 12:28:41

标签: cakephp orm controller cakephp-3.0

我的问题是这个。我有一个控制器“FacsController”和一个方法。

public function access()
{
     $facs = $this->Facs->find()->all();
     return $facs;
}

此方法运行正常,数据正确返回。 但我需要的是在另一个控制器“PagesController”中调用此方法。

public function display()
{
     $var = new  FacsController();
     $var->access();
     $this->set('vars', $var);
     $this->set('_serialize', ['vars']);
}

不幸的是,我没有从FacsController返回数据。 有人能帮我吗?我做错了什么。

1 个答案:

答案 0 :(得分:1)

如果您想要模型中的数据,那么您使用的是模型,而不是控制器!如果您觉得需要一个控制器需要访问另一个控制器,那么这几乎总是指示应用程序设计失败的指示器。你也不会自己实例化控制器(除非在单元测试中)!

如果你想保持DRY,请在你的模型(表类)中创建适当的自定义方法,并使用它们来封装更多的逻辑。

话虽如此,与所有其他控制器一样,通过$this->loadModel()甚至TableRegistry::get()加载模型。

$var = $this->loadModel('Facs')->find()->all();

另见