CakePHP 4 -未知的方法“loadModel”

vuktfyat  于 2022-11-11  发布在  PHP
关注(0)|答案(1)|浏览(150)

在一个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->...

bjg7j2ky

bjg7j2ky1#

这是因为loadModel实际上不是该类中的一个方法。
\TableRegistry::getTableLocator()->get('EmailDomains')将返回table对象(如果只需要一次,可以直接引用该对象,或者保存在局部变量或类属性中)
或者,如果您在特定的表类中使用use Cake\Datasource\ModelAwareTrait;,则loadModel函数应该变为可用。

相关问题