【发布时间】:2017-08-22 22:10:59
【问题描述】:
我想获取存储库的对象,但出现下一个错误
在 null 上调用成员函数 findAll()
错误行是$projects = $this->projectRepository->findAll();
首先使用对象管理器获取存储库,它没有工作。目前的配置是: 在控制器中
/**
*projectRepository
*
* @var \VENDOR\MyExtName\Domain\Repository\ProjectRepository
* @inject
*/
protected $projectRepository = null;
和存储库
class ProjectRepository extends \TYPO3\CMS\Extbase\Persistence\Repository
{
public function createQuery() {
$query = parent::createQuery();
$query->getQuerySettings()->setRespectStoragePage(FALSE);
return $query;
}
}
findByUid($uid) 也会发生这种情况
对象存在于 DB 中,在 BE 中可见。
我清理了缓存,删除了typo3temp 目录的内容,并遵循了关于类似错误(我认为)Call to a member function findAll() on a non-object 的问题,但它没有工作,我遇到的异常不同。
感谢您的帮助,请指导我纠正此错误
【问题讨论】:
-
嗯,这表明
$this->projectRepository不是你想象的那样。把它倒出来看看。假设您的日志显示您需要查看的另一个错误。就像您的自动加载器失败或者您在那些 c 样式 cmets 上的元数据中有错字。 -
或者简单地尝试在您的索引操作中创建一个这样的存储库实例:
$test = new \VENDOR\MyExtName\Domain\Repository\ProjectRepository();,如果失败,您将获得更多信息,什么是错的。 -
我在使用
findAll()指令之前使用var_dump作为打印属性,并看到了我的存储库的正确实例
标签: php typo3 extbase typo3-7.6.x