FAQ SymfonyConsultez toutes les FAQ
Nombre d'auteurs : 17, nombre de questions : 81, dernière mise à jour : 18 juin 2017 Ajouter une question
Les questions redondantes se multipliant sur le forum Symfony, nous avons choisi de créer cette FAQ afin de regrouper les questions qui sont posées fréquemment.
Vos remarques et idées sont les bienvenues. Et pourquoi pas votre aide ! S'il vous prend l'envie de tailler votre plus belle plume et de retrousser vos manches, il y a de quoi faire !
Pour créer une base de données de type MySQL, il faut éditer le fichier Symfony2/app/config/parameters.ini (« Symfony2 », étant le nom du répertoire de l'installation Symfony2).
Dans ce fichier, on définit le nom, le type et d'autres paramètres de la base de données :
database_driver = pdo_mysql
database_host = localhost
database_port =
database_name = nom-de-la-base-de-donnees
database_user = root
database_password = mot-de-passe-securise
mailer_transport = smtp
mailer_host = localhost
mailer_user =
mailer_password =
locale = fr
secret = 16b10f9d2e7885152d41ea6175886563a
Pour créer dans sa base de données, les tables associées aux entités, il faut saisir dans la console, la commande suivante :
Il est possible d'exécuter des requêtes SQL sans passer par doctrine. Par exemple, pour accéder à des fonctions en PL/pgSQL, PLSQL, Transac-SQL, etc. Cela est aussi possible si on veut accéder à des colonnes ou des types non mappés dans des entités.
L'accesseur « Doctrine\DBAL\getConnection() » de la classe « EntityManager » permet d'accéder à la classe « Connection » de Doctrine2. Celle-ci contient une méthode « exec() » qui peut exécuter des requêtes SQL qui « court-circuitent » le mapping et accèdent donc aux fonctions pl/pgSQL.
Exemple avec les valeurs à encoder passées dans les paramètres HTTP GET. La fonction pl/pgsql à appeler est ici GEOMFROMTEXT de PostGIS qui prend deux paramètres (une chaîne de caractères de type « POINT(X Y) » et un entier qui sert de numéro de code pour la projection géographique) :
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 | /** * @Route("/insertionpoint/{description}/{latitude}/{longitude}/{projection}") */ public function insertPostGISPointAction($description, $latitude, $longitude, $projection) { $em = $this->container->get('doctrine')->getEntityManager(); $connection=$em->getConnection(); $st=$connection->exec("INSERT INTO test_gis_doctrine(id, description, the_geom) SELECT COALESCE(MAX( id ),0)+1 , '".$description."', GEOMFROMTEXT('POINT(".$longitude." ".$latitude.")', ".$projection.") FROM test_gis_doctrine;"); } |
Les méthodes suivantes de la classe Connection sont fort utiles pour remapper le résultat d'une requête passée directement en SQL dans un objet, car elles renvoient le résultat dans un tableau :
array fetchAll(string sql, array params)
Prepares and executes an SQL query and returns the result as an associative array..
array fetchArray(string statement, array params)
Prepares and executes an SQL query and returns the first row of the result as a numerically indexed array..
array fetchAssoc(string statement, array params)
Prepares and executes an SQL query and returns the first row of the result as an associative array..
mixed fetchColumn(string statement, array params, int colnum)
Prepares and executes an SQL query and returns the value of a single column of the first row of the result...
Proposer une nouvelle réponse sur la FAQ
Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour çaLes sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.