我的问题是这个。我有一个控制器“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返回数据。 有人能帮我吗?我做错了什么。
答案 0 :(得分:1)
如果您想要模型中的数据,那么您使用的是模型,而不是控制器!如果您觉得需要一个控制器需要访问另一个控制器,那么这几乎总是指示应用程序设计失败的指示器。你也不会自己实例化控制器(除非在单元测试中)!
如果你想保持DRY,请在你的模型(表类)中创建适当的自定义方法,并使用它们来封装更多的逻辑。
话虽如此,与所有其他控制器一样,通过$this->loadModel()
甚至TableRegistry::get()
加载模型。
$var = $this->loadModel('Facs')->find()->all();
另见