我是cakephp的新手,正在尝试使用cakephp version 4.0.7创建一个组件。
在组件中,我需要将数据保存在一个表中。我已经按照这个文档插入数据
在组件中,我尝试了下面的代码注册表我的表
use Cake\ORM\Locator\LocatorAwareTrait;
class MyComponent extends Component{
public function foo()
{
$ProductsTable = $this->getTableLocator()->get('Products');
}
}
在输出中,我得到下面的异常
Call to undefined method App\Controller\Component\MyComponent::getTableLocator()
我该如何解决这个问题?
2条答案
按热度按时间cngwdvgl1#
CakePHP 4.0.x
来自CakePHP 4.1
Cake\ORM\TableRegistry已弃用。使用Cake\ORM\ORM\LocatorAwareTrait::getTableTrait()或Cake\Datasheet\FactoryTrait::get('Table')
阅读https://book.cakephp.org/4/en/appendices/4-1-migration-guide.html#orm
并尝试使用FactoryList:
或在组件类中注入trait
mf98qq942#
Salines answere在Cakephp 4.3.x中仍然有效
我测试了它,它在我的组件工作!