我是cakephp3的新手。我读了http://book.cakephp.org/3.0/并开始使用cakephp3开发小应用程序。 我正在使用UserMastersController,我想保存并从person_masters表中获取数据。为此我每次使用loadModel()或TabelRegistry :: get();每个函数中的方法。
$this->loadModel('PersonMasters');
那么,如何在cakephp3中定义全局其他模型,所以我不应该在每个函数中定义每次?
答案 0 :(得分:1)
我正在使用loadModel()或TabelRegistry :: get();每个函数中的方法。
最简单的解决方案是相关控制器中的define the beforeFilter method:
public function beforeFilter(Event $event)
{
$this->loadModel('PersonMasters');
parent::beforeFilter($event);
}
public function example()
{
$this->PersonMasters->find(); // no error
}
如果您愿意,可以改为更改默认表类的名称,is set automatically to the name of the controller class - if it isn't already set。这就是" FoosController的惯例将如何使用Foos表类"实施。即这也有效:
public function beforeFilter(Event $event)
{
$this->modelClass = 'PersonMasters';
parent::beforeFilter($event);
}
public function example()
{
$this->PersonMasters->find(); // no error
}
虽然这对于未来的代码读者来说更为间接且可能更令人困惑(例如,明年,下周,或明天=))。