가 나는 EntityRepository.php 파일에 쿼리, 쿼리가 통과하고 나에게 예를 들어 일치하는 개체의 수를 제공하게 무엇을 기대하고 있지 속성이 feedback.appointmentState.uid = 4
인 모든 항목을 필터링합니다. 나는이 다음과 같은 제약에 넣어 때대안
가와 :
$query->equals('feedback.appointmentState.uid', 4)
이 지금은 이해하지 못하는 부분을 제공
0
나에게 준다 - 을 I가 그 부분을 변경하는 경우가 :
$query->logicalNot($query->equals('feedback.appointmentState.uid', 4))
나는
90
해당 필터와 일치하는 엔티티가 없으므로 100을 출력해야하므로이 방법이 효과가 없습니다.하지만 어떻게하면 가장 좋은 방법 일 수 있습니까? 여기에 설명 내 코드 예제 (물론 나는 동시에 두 주석 부분의 주석을 해제하지 않았다)
public function countByCompany($company) {
$query = $this->createQuery();
$constraints[] = $query->equals('deleted', 0);
$constraints[] = $query->equals('hidden', 0);
$constraints[] = $query->equals('socialworker.company', $company);
$total = $query->matching($query->logicalAnd($constraints))->count();
// $total is 30
// $constraints[] = $query->equals('feedback.appointmentState.uid', 4);
// $totalCancelled = $query->matching($query->logicalAnd($constraints))->count();
// $totalCancelled is 0
// $constraints[] = $query->logicalNot($query->equals('feedback.appointmentState.uid', 4));
// $totalWithoutCancelled = $query->matching($query->logicalAnd($constraints))->count();
// $totalWithoutCancelled is 15
return false;
}
나는 본능을 신뢰하고 90은 올바른 결과이며, 왜 다른 것을 기대하는지 알아 내야 만한다. –