CAKEPHP3:loadModel函数如何全局定义?

CAKEPHP3:loadModel函数如何全局定义?,cakephp,orm,model,cakephp-3.0,Cakephp,Orm,Model,Cakephp 3.0,我是cakephp3新手。我阅读并开始使用cakephp3开发小型应用程序。 我使用的是UserMastersController,我想从person_masters表中保存和获取数据;每个函数中的方法 $this->loadModel('PersonMasters'); 那么,如何在cakephp3中全局定义其他模型,这样就不应该在每个函数中定义每次?使用beforeFilter 我正在使用loadModel()或TabelRegistry::get();每个函数中的方法 $this-

我是cakephp3新手。我阅读并开始使用cakephp3开发小型应用程序。 我使用的是UserMastersController,我想从person_masters表中保存和获取数据;每个函数中的方法

$this->loadModel('PersonMasters');
那么,如何在cakephp3中全局定义其他模型,这样就不应该在每个函数中定义每次?

使用beforeFilter 我正在使用loadModel()或TabelRegistry::get();每个函数中的方法

$this->loadModel('PersonMasters');
最简单的解决方案是在相关控制器中:

public function beforeFilter(Event $event)
{
    $this->loadModel('PersonMasters');
    parent::beforeFilter($event);
}

public function example()
{
    $this->PersonMasters->find(); // no error
}
如果愿意,可以改为更改默认表类的名称,即-。这就是“FoosController将使用Foos表类”约定的实现方式。也就是说,这也会起作用:

public function beforeFilter(Event $event)
{
    $this->modelClass = 'PersonMasters';
    parent::beforeFilter($event);
}

public function example()
{
    $this->PersonMasters->find(); // no error
}

虽然这对未来的代码读者来说更为间接,也可能更为困惑(例如,你,明年,下周,或者明天=)).

您想为每个控制器加载此模型吗?不是为每个控制器加载。但我想为一个特定控制器全局定义模型…因为在我的UserMasterController中,有不同的函数使用person_masters数据库表。所以每次我写这行:$this->loadModel('PersonMasters');在每个函数中..那么我如何全局定义?您在哪里尝试过此代码?请提供您的查找方法?