如何调用带有两个参数的数组的成员函数?

How can I call a member function on an Array with two parameters?

在我的控制器中:

$relationEntity  = $this->getDoctrine()->getRepository(Data::class)->findPosition($dataId,$documentId);
$relationEntity->setContent("hello");

在我的存储库中:

  public function findPosition($dataId,$documentId) {

    return $this->createQueryBuilder('data')
                    ->leftJoin('data.documents', 'dd')
                    ->andWhere('dd.uuid = :documentId')
                    ->andWhere('data.document_id = :dataId')
                    ->setParameter('documentId', $documentId)
                    ->setParameter('dataId', $dataId)
                    ->getQuery()
                    ->execute();
}

我收到错误消息:

Call to a member function setContent() on array

我知道它可以与 findOneby 一起使用,但是我找不到我想通过两个参数编辑的条目。所以我现在不知道该怎么办。

如果你使用 custom repository 你应该 return getResult() 而不是执行,试试这个:

    $datas = $this->createQueryBuilder('data')
                    ->leftJoin('data.documents', 'dd')
                    ->andWhere('dd.uuid = :documentId')
                    ->andWhere('data.document_id = :dataId')
                    ->setParameter('documentId', $documentId)
                    ->setParameter('dataId', $dataId)
                    ->getQuery()
                    ->getResult();
    return $datas[0];

如果你确定只查询return一行,你可以return第一个结果。

我找到了解决方案:

foreach ($relationEntity as $r) {
     $r->setContent("hello");
}