我正在为我的项目使用 CakePHP3.6 。我在“选项”控制器中创建了以下功能:
public function getValue($id = null){
$options=$this->Options->find()->where(['id'=>$id])->first();
return $options->value;
}
然后我将该函数调用为另一个控制器(任何xyz控制器)的函数,如下所示:
$r = $this->Options->getValue(1);
现在我收到错误消息“未知方法“ getValue””。
我对CakePHP3.2遵循相同的过程,效果很好。因此,请帮助我,如何为CakePHP3.6调用另一个控制器的功能?
答案 0 :(得分:1)
您应该从不从另一个控制器中的另一个函数调用函数,我非常怀疑这样做是否如3.2所示。该函数看起来非常像应该在OptionsTable中,而不是OptionsController中。您唯一需要做的更改是在函数体内,它只会是$this->find()
,而不是$this->Options->find()
。
答案 1 :(得分:-1)
class FirstController extends AppController
{
public function getValue($id = null){
$options=$this->Options->find()->where(['id'=>$id])->first();
return $options->value;
}
}
class SecondController extends AppController
{
public function anotherAction($id = null){
$anotherController = new \App\Controller\FirstController();
$r = $anotherController->getValue($id) ;
}
}