Extbase查询不起作用

时间:2014-12-24 12:08:35

标签: typo3 fluid extbase typo3-6.2.x

我想从我的扩展程序的存储库中获取一个对象。

我在Controller FachController中添加了以下代码

/**
* modulRepository
*
* @var \ReRe\Rere\Domain\Repository\ModulRepository
* @inject
*/
protected $modulRepository = NULL;

我试着像这样得到对象:

$modulUID = $this->request->getArgument('modul');
$modul = $this->modulRepository->findByUid($modulUID);

但是我在这行中遇到错误:

$modul = $this->modulRepository->findByUid($modulUID);`

错误是:

Call to a member function findByUid() on a non-object

为什么我会收到此错误?

在我的存储库中,我添加了以下代码:

public function findByUid($uid) {
  $query = $this->createQuery();
  $query->matching($query->equals('uid', $uid));
  $models = $query->execute();
  return $models;
}

1 个答案:

答案 0 :(得分:3)

您的存储库中不需要使用findByUid方法,因为此方法已在Repository基类中定义。

问题很可能是你没有清除系统缓存(在开发上下文中,在后端有一个按钮,并且在安装工具中有一个按钮)为{{添加依赖注入后1}}。这是必要的,因为依赖注入被缓存,并且在清除常规缓存时不会刷新此缓存。