我目前正在使用Typo3 6.2.10
和Extbase。
我正在尝试将存储库注入我的域模型,如下所示:
class MyModel extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity {
/**
* @inject
* @var \Vendor\Package\Domain\Repository\SomeRepository
*/
protected $someRepository;
}
但是,$this->someRepository
始终是null
。将存储库注入控制器总是有效。
提前谢谢!
答案 0 :(得分:1)
请注意,使用$ this-> objectManager-> get(xxx)时,必须省略类名中的第一个\;或者此行将在typo3 7.x +中抛出异常。
$this->objectManager->get('Vendor\Package\Domain\Model\MyModel');
反斜杠也是一个转义字符,因此转义反斜杠或仅使用类的静态常量更安全
转义:
$this->objectManager->get('Vendor\\Package\\Domain\\Model\\MyModel');
使用静态类名:
$this->objectManager->get(\Vendor\Package\Domain\Model\MyModel::class);
我更喜欢使用最后一种方法,因为你可以看到你是否输错了(取决于IDE)
答案 1 :(得分:0)
抱歉,我自己找到了解决方案。
我尝试使用new
关键字来实例化模型,其中(ofc)不起作用。
我不得不使用$this->objectManager->get('\Vendor\Package\Domain\Model\MyModel');
。