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

高洛峰
Libérer: 2016-12-26 11:31:04
original
1304 Les gens l'ont consulté

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')
Copier après la connexion

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'));
Copier après la connexion

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();
Copier après la connexion

Remarque :

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

$product = $query->getSingleResult();
Copier après la connexion

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;
}
Copier après la connexion

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',
))
Copier après la connexion

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();
Copier après la connexion
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 !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal