public function findOneByUniqueFields(array $fields)
{
$query = $this->createQueryBuilder('d')->where('d.name = :name')->setParameter('name', $fields['name']);
if (isset($fields['discriminator'])) {
if ('developer' == $fields['discriminator']) {
$query->andWhere('d INSTANCE OF Knp\\Bundle\\KnpBundlesBundle\\Entity\\Developer');
} elseif ('organization' == $fields['discriminator']) {
$query->andWhere('d INSTANCE OF Knp\\Bundle\\KnpBundlesBundle\\Entity\\Organization');
}
}
if (isset($fields['githubId'])) {
$query->orWhere('d.githubId = :github_id')->setParameter('github_id', $fields['githubId']);
}
return $query->getQuery()->getOneOrNullResult();
}