【问题标题】:FindBy property in TYPO3 Extbase MVC is not workingTYPO3 Extbase MVC 中的 FindBy 属性不起作用
【发布时间】:2013-06-04 15:19:54
【问题描述】:

我无法在 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


【解决方案1】:

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

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

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

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

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

【讨论】:

    【解决方案2】:

    试试

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

    参考QueryResult

    【讨论】:

      【解决方案3】:

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

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

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

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

      $each_event[0]->getProperty();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多