0

这是关于 CakePHP 3 的一般性问题,我有丰富的 OOP 背景,但我是 PHP 新手,并且一直坚持使用 Cake 进行项目。我想这围绕着约定。

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

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

再说一次,我是 PHP 新手,Cake 完全是新手,所以框架的一些约定仍然有点模糊。希望有人可以帮助解决这个问题-谢谢!

4

1 回答 1

1

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

// ApplesController
loadModel("Oranges");

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

或者如果您的模型是关联的,

// ApplesController
$this->Apples->Oranges->makeJuice();
$orange_sugar = $this->Apples->Oranges->sugar;
于 2015-12-15T02:30:55.513 回答