从XController访问YTable中的成员函数

时间:2015-12-14 21:03:53

标签: cakephp-3.0 cakephp-3.x

这是一个关于CakePHP 3的一般性问题,我有大量的OOP背景,但我是PHP的新手,并且使用Cake进行项目。我想这是围绕惯例。

所以说我有一些模型实体Apple,带有匹配的ApplesTable类。在ApplesTable类中,我实现了一种从数据库中查找内容的方法。如果我在ApplesController中,我的理解是我可以写:$this->Apples->method()并且没问题。

但是,如果我想访问那个方法,比如说OrangesController,只是键入相同的东西给我一个致命的错误,说“在布尔上调用成员函数方法()”。从我发现的研究中,它可能是因为它无法加载模型元素,因此上面写的方法调用只会产生错误,从而产生错误。

同样,我是PHP的新手,也是Cake的新手,因此框架的一些约定仍然有些模糊。希望有人可以帮助澄清这一点 - 谢谢!

1 个答案:

答案 0 :(得分:1)

当您需要使用非控制器默认模型表/集合时,请尝试loadModel()

// ApplesController
loadModel("Oranges");

$this->Oranges->makeJuice();
$orange_sugar = $this->Oranges->sugar;

或者您的模型是associated

// ApplesController
$this->Apples->Oranges->makeJuice();
$orange_sugar = $this->Apples->Oranges->sugar;