如何加载非默认模型?

hit*_*han 9 cakephp cakephp-3.0

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

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

ndm*_*ndm 16

您的观察结果是正确的,没有$uses属性,相反,模型/表格与控制器(ex PostsTablefor PostsController)不匹配且无法通过关联获得,必须明确加载.

这可以通过使用任何一个来完成

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

$this->loadModel('Name');
Run Code Online (Sandbox Code Playgroud)

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

$this->Name = TableRegistry::get('Name');
Run Code Online (Sandbox Code Playgroud)

但更多loadModel()是抽象的,并支持非表存储库.