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

问题描述 投票:2回答:3

我无法在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和扩展构建器。

typo3 extbase
3个回答
1
投票

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

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

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

顺便说一下:检查你的事件存储库是否为空,你可以尝试这个,看看它是否有效:

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

0
投票

尝试

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

参考QueryResult


0
投票

正如在documentation所说,它返回一个QueryResultInterface|array

因此,你必须像这样循环结果:

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

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

$each_event[0]->getProperty();
© www.soinside.com 2019 - 2024. All rights reserved.