9

在 CakePHP2.x 中,我经常$uses在控制器中使用属性,但在 CakePHP 3.0 中似乎不再提供该属性。

我知道加载非默认模型的唯一方法是使用loadModel()方法。这是加载模型的推荐方式吗?或者有没有其他方法来加载模型?

4

1 回答 1

16

您的观察是正确的,不再有任何$uses属性,而是与控制器不匹配的模型/表(例如PostsTablePostsController并且不能通过关联获得,必须显式加载。

这可以通过使用

所以这对你的问题有点肯定Controller::loadModel(),即

$this->loadModel('Name');

是一种将模型/表实例作为属性添加到控制器的可行方法,至少在默认配置中,它本质上是以下的简写:

$this->Name = TableRegistry::get('Name');

但 moreloadModel()更加抽象,并且支持非表存储库。

于 2014-08-12T17:09:39.120 回答