Maison >php教程 >PHP开发 >Symfony2 utilise Doctrine pour le résumé de l'exemple de méthode de requête de base de données

Symfony2 utilise Doctrine pour le résumé de l'exemple de méthode de requête de base de données

高洛峰
高洛峰original
2016-12-26 11:31:041322parcourir

L'exemple de cet article décrit comment Symfony2 utilise Doctrine pour effectuer des requêtes de base de données. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

Variables prédéfinies utilisées dans le texte :

$em = $this->getDoctrine()->getEntityManager();
$repository = $em->getRepository('AcmeStoreBundle:Product')

1. Méthode de base

$repository->find($id);
$repository->findAll();
$repository->findOneByName('Foo');
$repository->findAllOrderedByName();
$repository->findOneBy(array('name' => 'foo', 'price' => 19.99));
$repository->findBy(array('name' => 'foo'),array('price' => 'ASC'));

2.DQL

$query = $em->createQuery(
'SELECT p FROM AcmeStoreBundle:Product p WHERE p.price > :price ORDER BY p.price ASC'
)->setParameter('price', '19.99′);
$products = $query->getResult();

Remarque :

(1) Pour obtenir un résultat, vous pouvez utiliser :

$product = $query->getSingleResult();

Pour utiliser la méthode getSingleResult(), vous devez envelopper avec une instruction try catch, to Il est garanti de renvoyer un seul résultat. L'exemple est le suivant :

->setMaxResults(1);
try {
$product = $query->getSingleResult();
} catch (\Doctrine\Orm\NoResultException $e) {
$product = null;
}

La valeur de prix "placeholder" dans l'instruction de requête, au lieu d'écrire la valeur directement dans l'instruction. l'instruction de requête, est utile pour empêcher les attaques par injection SQL. Vous pouvez également définir plusieurs paramètres :

->setParameters(array(
'price' => '19.99′,
'name' => 'Foo',
))

3. Utilisez le générateur de requêtes de Doctrine

<.>

$query = $repository->createQueryBuilder(&#39;p&#39;)
->where(&#39;p.price > :price&#39;)
->setParameter(&#39;price&#39;, &#39;19.99′)
->orderBy(&#39;p.price&#39;, &#39;ASC&#39;)
->getQuery();
$products = $query->getResult();
J'espère que cet article vous aidera avec PHP basé sur le framework Symfony. La programmation aide.

Pour plus d'exemples de méthodes de requête de base de données Symfony2 utilisant Doctrine et d'articles connexes, veuillez faire attention au site Web PHP chinois !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn