TYPO3 Extbase MVC中的FindBy属性不起作用

时间:2013-06-04 15:19:54

标签: typo3 extbase

我无法在Extbase MVC中运行FindBy魔术函数属性

    $title=array(0 =>'Books Day');

    $each_event=$this->eventRepository->findByTitle($title);

$each_event正在返回TYPO3\CMS\Extbase\Persistence\Generic\QueryResult类型的对象。

如何使这项工作?

我还尝试将字符串传递给findByTitlefindByOne。两个都不工作! :(

我正在使用TYPO3 6.1和扩展构建器。

3 个答案:

答案 0 :(得分:1)

这些魔术函数的最后一部分总是需要是数据库中的一个字段。所以“标题”必须在你的模型中。你的对象可能有一个字段“one”,但我想你的意思是findOneByTitle?

对象类型QueryResult是正确的。您可以将其转换为数组以进行调试,例如:

$foo = $query->execute()->toArray();

顺便说一句:检查你的eventRepository是否为null,你可以试试看它是否有效:

$result = $this->myRepository->findAll();

答案 1 :(得分:0)

尝试

$each_event=$this->eventRepository->findByTitle($title)->toArray();

参考QueryResult

答案 2 :(得分:0)

documentation中所述,它返回一个QueryResultInterface|array

因此,您必须像这样遍历结果:

foreach($each_event as $single_event) {
    $single_event->getProperty();
}

如果您确定它仅返回一个值,则也可以通过索引0来访问它:

$each_event[0]->getProperty();