en ligne de commandes je ne sais pas ce qu il faut saisir. J'utilise vendor\bin\doctrine sous windows 10. Je lis un tres bon tutoriel
mais il n'indique pas comment générer les entities depuis une base de donnée existante.
Merci
Version imprimable
en ligne de commandes je ne sais pas ce qu il faut saisir. J'utilise vendor\bin\doctrine sous windows 10. Je lis un tres bon tutoriel
mais il n'indique pas comment générer les entities depuis une base de donnée existante.
Merci
Il faut d'abord faire un mapping à partir de la bdd existante.
Remplace src par le chemin où tu désires mettre les entités. Cela va générer les squelettes des entités dans le répertoire src/Entity, sous le namespace Entity, avec les propriétés et les annotations.Code:$ vendor\bin\doctrine orm:convert-mapping --from-database --namespace='Entity\' annotation src/
Merci pour ta réponse.
j'ai mis en console cmd
aucune erreure n'est signaler Mais les classe Entiity ne sont pas creer. bizare :calim2:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 C:\wamp\www\doctrine2-tuto>vendor\bin\doctrine orm:convert-mapping --from-database --namespace='src\Entity\' annotation src/ Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in C:\wamp\www\doctrine2-tuto\vendor\doctrine\orm\lib\Doctrine\ORM\UnitOfWork.php on line 2624 Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in C:\wamp\www\doctrine2-tuto\vendor\doctrine\orm\lib\Doctrine\ORM\UnitOfWork.php on line 2653 Processing entity "'src\Entity\'Admin" Processing entity "'src\Entity\'Commentaire" Processing entity "'src\Entity\'Creersujet" Processing entity "'src\Entity\'Membre" Processing entity "'src\Entity\'Sujet" Exporting "annotation" mapping information to "C:\wamp\www\doctrine2-tuto\src"
Voici mon bootsrrasp
le cli-config.phpCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 <?php # bootstrap.php require_once join(DIRECTORY_SEPARATOR, [__DIR__, 'vendor', 'autoload.php']); use Doctrine\ORM\Tools\Setup; use Doctrine\ORM\EntityManager; $entitiesPath = [ join(DIRECTORY_SEPARATOR, [__DIR__, "src", "Entity"]) ]; $isDevMode = true; $proxyDir = null; $cache = null; $useSimpleAnnotationReader = false; // Connexion à la base de données $dbParams = [ 'driver' => 'pdo_mysql', 'host' => 'localhost', 'charset' => 'utf8', 'user' => 'root', 'password' => '', 'dbname' => 'ducerf', ]; $config = Setup::createAnnotationMetadataConfiguration( $entitiesPath, $isDevMode, $proxyDir, $cache, $useSimpleAnnotationReader ); $entityManager = EntityManager::create($dbParams, $config); return $entityManager; ?>
Code:
1
2
3
4
5
6
7
8
9
10
11 <?php # cli-config.php $entityManager = require_once join(DIRECTORY_SEPARATOR, [__DIR__, 'bootstrap.php']); use Doctrine\ORM\Tools\Console\ConsoleRunner; return ConsoleRunner::createHelperSet($entityManager); ?>
Tu sembles utiliser une version obsolète de doctrine, je ne trouve pas ces erreurs dans la dernière version. Peux-tu mettre à jour?
j utilise cette version
je faitCode:
1
2 composer require doctrine/orm:^2.5
quand je faisCode:
1
2
3
4 "require" : { "doctrine/orm" : "*" }
ca me doone[Code:
1
2 C:\wamp\www\doctrine2-tuto>vendor\bin\doctrine orm:convert-mapping --from-database --namespace='Entity\' annotation src/
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 C:\wamp\www\doctrine2-tuto>vendor\bin\doctrine orm:convert-mapping --from-database --namespace='Entity\' annotation src/ Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in C:\wamp\www\doctrine2-tuto\vendor\doctrine\orm\lib\Doctrine\ORM\UnitOfWork.php on line 2636 Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in C:\wamp\www\doctrine2-tuto\vendor\doctrine\orm\lib\Doctrine\ORM\UnitOfWork.php on line 2665 Processing entity "'Entity\'Admin" Processing entity "'Entity\'Commentaire" Processing entity "'Entity\'Creersujet" Processing entity "'Entity\'Membre" Processing entity "'Entity\'Sujet" [Doctrine\ORM\Tools\Export\ExportException] Attempting to overwrite an existing file 'C:\wamp\www\doctrine2-tuto\src/'Entity/'Admin.php'.
L'erreur arrive parce que tu es en PHP 7.3. Passe à la version 2.6 de doctrine qui supporte PHP 7.3, j'ai fait une convert:mapping récemment avec la 2.6 et je n'ai pas eu ce problème.
Merci beaucoup. ca marche maintenant
voila le composer.json
Code:
1
2
3
4
5
6 { "require" : { "doctrine/orm" : "2.6" } }
Doctrine2 ne mappe pas les relations entre tables.
Il y a t il une autre solution que de saisir soi même les classes one to many et many to many ?
Merci