这是一个关于CakePHP 3的一般性问题,我有大量的OOP背景,但我是PHP的新手,并且使用Cake进行项目。我想这是围绕惯例。
所以说我有一些模型实体Apple,带有匹配的ApplesTable类。在ApplesTable类中,我实现了一种从数据库中查找内容的方法。如果我在ApplesController中,我的理解是我可以写:$this->Apples->method()
并且没问题。
但是,如果我想访问那个方法,比如说OrangesController,只是键入相同的东西给我一个致命的错误,说“在布尔上调用成员函数方法()”。从我发现的研究中,它可能是因为它无法加载模型元素,因此上面写的方法调用只会产生错误,从而产生错误。
同样,我是PHP的新手,也是Cake的新手,因此框架的一些约定仍然有些模糊。希望有人可以帮助澄清这一点 - 谢谢!
答案 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;