Here is an example of a simple DQL query in a custom repository method meant to return a single array result. The following will return the latest result in case there are multiple contact records that match the “customerId” field, which is actually “customer_id” in the database, but remember that camelCase convention applies to Doctrine mappings of database fields.
// inside entity repository is the getMostRecentContact() method which is called on from any controller that has initialized this repository
function getMostRecentContact($customerId){
$fields='c.firstName,c.lastName,c.email';
$dql="SELECT $fields FROM \Main\DefaultBundle\Entity\Contact c
WHERE c.customerId=$customerId AND c.status='Active' ORDER by c.createdAt DESC";
$contactArr=$this->_em->createQuery($dql)->setMaxResults(1) ->getArrayResult();
return $contactArr;
}
Note: Using Symfony's built-in repository method findBy() is possible here, but with multiple "WHERE" conditions, this approach is usually more flexible.