我在我的存储库中创建了一个函数:
/**
* @return array<int, array<int, string>>
*/
public function findByBuildingGroupByCompany(string $buildingId): array
{
return $this->createQueryBuilder('qr')
->select('DISTINCT(qr.company)')
->leftJoin('qr.building', 'b')
->leftJoin('qr.quotes', 'q')
->andWhere('b.id = :buildingId')
->andWhere('qr.company IS NOT NULL')
->setParameter('buildingId', $buildingId)
->getQuery()
->getResult()
;
}
这个函数在我的控制器中调用,如果我转储它,我有
array:3 [▼
0 => array:1 [▼
1 => "a00e9bcb-bffd-442a-aa9c-b0ca627fda36"
]
1 => array:1 [▼
1 => "777ea601-39d0-4d54-939f-64a56912a843"
]
2 => array:1 [▼
1 => "b78bf56c-b99d-40c7-b317-458c4df7e286"
]
]
所以我的函数返回我输入的内容array<int, array<int, string>>
,但是 phpstan 抛出这个错误: Method App\Repository\QuoteRequestRepository::findByBuildingGroupByCompany() should return array<int, array<int, string>> but returns mixed
。
如果我返回混合,它会抛出这两个错误:
Method
App\Repository\QuoteRequestRepository::findByBuildingGroupByCompany()
return type has no value type specified in iterable type array.
See:
https://phpstan.org/blog/solving-phpstan-no-value-type-specified-in-i
terable-type
49 Method
App\Repository\QuoteRequestRepository::findByBuildingGroupByCompany()
should return array but returns mixed
我真的不知道如何处理它:(
任何想法 ?