在一个CakePHP 4应用程序中,我已经将此代码添加到一个模型src/Model/Table/SignUpsTable.php
中
public function initialize(array $config): void
{
parent::initialize($config);
// ...
$this->loadModel('EmailDomains');
}
我有一个名为EmailDomains
的模型,并且存在相应的表/实体类文件。
在一个控制器方法中我有以下内容:
// src/Controller/UsersController.php
public function initialize(): void
{
parent::initialize();
$this->loadModel('SignUps');
}
public function signUp()
{
// ...
}
在我的浏览器中导航到/sign-up
时,出现以下错误:
在应用程序\模型\表\SignUpsTable上调用了未知方法“loadModel”
如果我注解掉SignUpsTable::initialize
中的loadModel
代码,它会清除此错误,但我在那里的其他代码将无法工作,因为它引用了$this->EmailDomains->...
1条答案
按热度按时间bjg7j2ky1#
这是因为
loadModel
实际上不是该类中的一个方法。\TableRegistry::getTableLocator()->get('EmailDomains')
将返回table对象(如果只需要一次,可以直接引用该对象,或者保存在局部变量或类属性中)或者,如果您在特定的表类中使用
use Cake\Datasource\ModelAwareTrait;
,则loadModel
函数应该变为可用。