如何调用带有两个参数的数组的成员函数?
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");
}
在我的控制器中:
$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");
}