Il est parfois nécessaire lorsque l’on utilise Doctrine 2 d’effectuer une requête SQL et non une requête DQL. Pour cela nous pouvons utiliser la méthode createNativeQuery dans laquelle nous pouvons utiliser le langage SQL.
// La requête SQL
$sql = "SELECT u.address FROM user u WHERE u.sex = 'M' ";
// Construction de l'objet ResultSetMapping
$rsm = new \Doctrine\ORM\Query\ResultSetMapping;
// On définie quel champs doit être retourné dans la réponse
$rsm->addScalarResult('address', 'address');
// On récupère les résultats
$addresss = $this->getEntityManager()
->createNativeQuery($sql, $rsm)
->getScalarResult()
;
$sql = "SELECT u.address FROM user u WHERE u.sex = 'M' ";
// Construction de l'objet ResultSetMapping
$rsm = new \Doctrine\ORM\Query\ResultSetMapping;
// On définie quel champs doit être retourné dans la réponse
$rsm->addScalarResult('address', 'address');
// On récupère les résultats
$addresss = $this->getEntityManager()
->createNativeQuery($sql, $rsm)
->getScalarResult()
;
Plus d’information sur la doc officielle: http://docs.doctrine-project.org/projects/doctrine-orm/en/2.0.x/reference/native-sql.html
Sometimes we have to make an SQL query instead of DQL query. For that we can use createNativeQuery method for write in SQL.
// The SQL query
$sql = "SELECT u.address FROM user u WHERE u.sex = 'M' ";
// Building of ResultSetMapping
$rsm = new \Doctrine\ORM\Query\ResultSetMapping;
// Definition of the needed fields (they will in the result array)
$rsm->addScalarResult('address', 'address');
// We get back the results
$addresss = $this->getEntityManager()
->createNativeQuery($sql, $rsm)
->getScalarResult()
;
$sql = "SELECT u.address FROM user u WHERE u.sex = 'M' ";
// Building of ResultSetMapping
$rsm = new \Doctrine\ORM\Query\ResultSetMapping;
// Definition of the needed fields (they will in the result array)
$rsm->addScalarResult('address', 'address');
// We get back the results
$addresss = $this->getEntityManager()
->createNativeQuery($sql, $rsm)
->getScalarResult()
;
More documentation on official website: http://docs.doctrine-project.org/projects/doctrine-orm/en/2.0.x/reference/native-sql.html
euuu, c’est un peu court comme article, non ?
En effet.