Derniers messages sur Zeste de Savoirhttps://zestedesavoir.com/forums/2021-08-22T19:53:54+02:00Les derniers messages parus sur le forum de Zeste de Savoir. SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name 'topo_id', message #2368952021-08-22T19:53:54+02:00Ymox/@Ymoxhttps://zestedesavoir.com/forums/sujet/15579/sqlstate42s21-column-already-exists-1060-duplicate-column-name-topo_id/?page=1#p236895<p>Ah oui, effectivement, après chaque migration créée, il faut l’appliquer sinon la migration suivante comprendra la précédente. Parce que les migrations ne se basent que sur l’état des entités et de la base de données, et non sur ce que contiennent les classes de migration à disposition.</p>
<p>Cela aurait été bien que tu effectues les manipulations sur les tags <img src="/static/smileys/svg/clin.svg" alt=";)" class="smiley"></p> SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name 'topo_id', message #2368752021-08-21T21:42:57+02:00Diego987/@Diego987https://zestedesavoir.com/forums/sujet/15579/sqlstate42s21-column-already-exists-1060-duplicate-column-name-topo_id/?page=1#p236875<p>Salut le problème est résolu , je n’avais qu’à refaire mes migrations… Merci.</p> SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name 'topo_id', message #2364862021-08-08T10:32:30+02:00Ymox/@Ymoxhttps://zestedesavoir.com/forums/sujet/15579/sqlstate42s21-column-already-exists-1060-duplicate-column-name-topo_id/?page=1#p236486<p>Salut</p>
<p>Est-ce que tu pourrais nous montrer les mappings des deux entités Media et Topo ? Parce que tu ne devrais pas avoir à réfléchir en SQL, et donc il pourrait bien y avoir un souci.</p>
<h4 id="edit">Edit<a aria-hidden="true" tabindex="-1" href="#edit"><span class="icon icon-link"></span></a></h4>
<p>Si jamais, je te recommande d’ajouter les tags <code>symfony</code> et <code>symfony 4.4</code> (ou la version que tu utilises, pas besoin des trois nombres — et tu n’es pas obligé d’utiliser uniquement les tags existant) et d’enlever <code>php mysql</code>. Au pire, ce serait plutôt <code>doctrine</code> qu’il faudrait à la place de ce dernier tag.</p> SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name 'topo_id', message #2364742021-08-07T17:43:16+02:00Diego987/@Diego987https://zestedesavoir.com/forums/sujet/15579/sqlstate42s21-column-already-exists-1060-duplicate-column-name-topo_id/?page=1#p236474<p>Bonjour, dans mon projet en symfony, après avoir ajouté la propriété média à mon entité topo en relation ManyToOne à l’entité Topo, j’ai fais les migrations et pour</p>
<div class="hljs-code-div hljs-code-text"><div class="hljs-line-numbers"><span data-count="1"></span><span data-count="2"></span></div><pre><code class="hljs language-text">php bin/console doctrine:migrations:migrate
</code></pre></div>
<p>j’ai eu :</p>
<div class="hljs-code-div hljs-code-text"><div class="hljs-line-numbers"><span data-count="1"></span><span data-count="2"></span><span data-count="3"></span></div><pre><code class="hljs language-text">An exception occurred while executing 'ALTER TABLE media ADD topo_id INT NOT NULL':
SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name 'topo_id'
</code></pre></div>
<p>Quelqu’un m’a sugérer de faire:</p>
<div class="hljs-code-div hljs-code-text"><div class="hljs-line-numbers"><span data-count="1"></span><span data-count="2"></span></div><pre><code class="hljs language-text">php bin/console doctrine:query:sql "ALTER TABLE media DROP topo_id"
php bin/console d:m:m
</code></pre></div>
<p>Mais j’ai :</p>
<div class="hljs-code-div hljs-code-text"><div class="hljs-line-numbers"><span data-count="1"></span><span data-count="2"></span></div><pre><code class="hljs language-text">SQLSTATE[HY000]: General error: 1553 Cannot drop index 'IDX_6A2CA10C7F7E8D71': needed in a foreign key co
nstraint
</code></pre></div>
<p>D’après ce que j’ai compris il faut également supprimer la clé étrangère et la remettre après ce que j e n’ai jamais fait auparavant. Je ne sais si ca risque de péter tout mon site? Sur le stackoverflow ils disent de faire </p>
<div class="hljs-code-div hljs-code-text"><div class="hljs-line-numbers"><span data-count="1"></span><span data-count="2"></span></div><pre><code class="hljs language-text">ALTER TABLE mytable DROP FOREIGN KEY mytable_ibfk_1 ; donc de faire
ALTER TABLE media DROP FOREIGN KEY topo_ibfk_1
</code></pre></div>
<p>puis de la remettre après avec :</p>
<div class="hljs-code-div hljs-code-text"><div class="hljs-line-numbers"><span data-count="1"></span></div><pre><code class="hljs language-text">ALTER TABLE media ADD CONSTRAINT media_ibfk_1 FOREIGN KEY (AID) REFERENCES media_a (ID) ON DELETE CASCADE
</code></pre></div>
<p> ou quelque chose comme ca. Ou bien, selon une autre methode, il fautdait faire comme suit</p>
<div class="hljs-code-div hljs-code-text"><div class="hljs-line-numbers"><span data-count="1"></span><span data-count="2"></span><span data-count="3"></span><span data-count="4"></span></div><pre><code class="hljs language-text">ALTER TABLE nom_table.
ADD [CONSTRAINT fk_col_ref] -- On donne un nom à la clé (facultatif)
FOREIGN KEY colonne -- La colonne sur laquelle on ajoute la clé
REFERENCES table_ref(col_ref); -- La table et la colonne de référence.
</code></pre></div>
<p>Si je comprends bien dans media j’ai 2 clés secondaires ou étrangères topo_id et site_id d’ailleur et il faut que je supprime et remette celle qui me gène, topo_id. Mais j’ai peur que ca casse mon site… non? Qu’en pensez-vous? Merci.</p>Doctrine - relation entre deux tables sur deux attributs, message #1807922018-05-23T22:59:11+02:00Nostalgique/@Nostalgiquehttps://zestedesavoir.com/forums/sujet/10765/doctrine-relation-entre-deux-tables-sur-deux-attributs/?page=1#p180792<p>Je pense que je vais opter pour ta deuxième solution. La première me semble plus complexe et répétitive… Même si c’est dommage conceptuellement de devoir mettre la relation sur une ligne.
Mais comme la seule valeur qui pouvait varier d’une ligne à une autre était la variable <code>authorization</code>, cela ne sera pas trop compliqué.</p>
<p>La table permettant d’avoir les deux lignes en une sera : </p>
<div class="table-wrapper">
<table>
<thead>
<tr>
<th>friends_links</th>
</tr>
</thead>
<tbody>
<tr>
<td>id</td>
</tr>
<tr>
<td>user_id</td>
</tr>
<tr>
<td>friend_id</td>
</tr>
<tr>
<td>facebook_mutual_friends</td>
</tr>
<tr>
<td>facebook_mutual_likes</td>
</tr>
<tr>
<td>authorization_user</td>
</tr>
<tr>
<td>authorization_friend</td>
</tr>
<tr>
<td>creation_datetime</td>
</tr>
</tbody>
</table>
</div>
<p>Merci pour ta réponse !</p>
<p><strong>EDIT :</strong> Pour mettre en place ensuite la relation entre les deux objets (après avoir simplifié la relation sur une ligne) j’ai suivi ce tuto qui correspond très bien à la situation : <a href="https://www.future500.nl/articles/2013/09/more-on-one-to-manymany-to-one-associations-in-doctrine-2/">https://www.future500.nl/articles/2013/09/more-on-one-to-manymany-to-one-associations-in-doctrine-2/</a> (Merci à @Cara pour ce lien !)</p>Doctrine - relation entre deux tables sur deux attributs, message #1807832018-05-23T21:49:16+02:00Ymox/@Ymoxhttps://zestedesavoir.com/forums/sujet/10765/doctrine-relation-entre-deux-tables-sur-deux-attributs/?page=1#p180783<p>Salut !</p>
<p>J’ai l’impression que ce serait une "simple OneToManyToOne". Reste qu’effectivement, il faut deux propriétés dans User pour la matérialiser. Une qui représente les amis "demandés par l’utilisateur " et une autre "les amis qui ont demandé à l’utilisateur" ?</p>
<p>Est-ce qu’il y a une raison particulière pour enregistrer la relation deux fois (tu parles bien de deux lignes dans la table), sachant que justement si elle est supprimée par l’un ou l’autre, les deux enregistrements seront supprimés ? Je pense qu’on pourrait mettre toutes les informations dans une seule ligne. Après tout, la relation est unique, même si les deux parties la voient différemment.</p>Doctrine - relation entre deux tables sur deux attributs, message #1807822018-05-23T21:36:16+02:00Nostalgique/@Nostalgiquehttps://zestedesavoir.com/forums/sujet/10765/doctrine-relation-entre-deux-tables-sur-deux-attributs/?page=1#p180782<p>Bonsoir,</p>
<p>Je cherche désespéramment la solution à un problème sur la création d’un lien entre deux tables. C’est ma première utilisation de Doctrine, et dès les deux premiers objets je bloque <img alt=":(" src="/static/smileys/triste.png"> Pas très encouragent…</p>
<p>Voici un petit résumé du problème.</p>
<p>J’ai deux classes. L’une s’appelle <code>User</code> et l’autre <code>FriendLink</code>. </p>
<figure><img alt="" src="https://cdn.pbrd.co/images/HmyegJS.png"><figcaption>Les deux tables associées à chaque objets</figcaption>
</figure>
<p>La première, comme son nom l’indique, stocke les utilisateurs et la deuxième les liens d’amitiés. Chaque amitié est réciproque. Je m’explique.</p>
<p>Soit l’utilisateur A<sub>id=1</sub> et l’utilisateur B<sub>id=2</sub>. A<sub>id=1</sub> et B<sub>id=2</sub> sont amis. Dans la table correspondante à l’objet <code>FriendLink</code>, appelée <code>friend_links</code>, cette amitié est représentée par deux lignes :</p>
<ul>
<li><code>user_id=1</code> et <code>friend_id=2</code> ;</li>
<li><code>user_id=2</code> et <code>friend_id=1</code>.</li>
</ul>
<p>Pour chacun des deux utilisateurs, il y a un lien avec les deux lignes. Par exemple si A<sub>id=1</sub> est supprimé, alors les deux lignes devront être supprimée. Cela ne serait pas cohérent d’en garder une, puisque l’identifiant 1 n’existe plus dans <code>users</code>.</p>
<p>C’est là que je bloque. Sachant qu’il y a deux attributs de la table <code>friend_links</code> qui ont un lien avec <code>users</code> je suis perdu. Théoriquement il s’agirait d’une relation <code>OneToMany()</code> mais j’ai l’impression que cela ne fera pas l’affaire (j’ai tenté un truc <a href="https://gitlab.com/baudev/ZONNY_API/blob/doctrine/Models/Account/User.php">ici </a>mais je me suis arrêté ne sachant pas comment continuer).</p>
<p>Merci d’avance pour votre aide ! N’hésitez pas à me dire si ce n’est pas clair, j’ai du mal à expliquer d’une manière générale.</p>
<p>PS: Merci pour ton tuto <a href="https://zestedesavoir.com/membres/voir/BestCoder/">@BestCoder</a> <img alt=";)" src="/static/smileys/clin.png"></p>Symfony : créer des entités à partir d'une BDD, message #1678762017-12-03T22:38:12+01:00amael/@amaelhttps://zestedesavoir.com/forums/sujet/8834/symfony-creer-des-entites-a-partir-dune-bdd/?page=1#p167876<p>Bonjour les agrumes !</p>
<p>La bêta a été mise à jour et décante sa pulpe
à l’adresse suivante :</p>
<div align="center">
<p><a href="https://zestedesavoir.com/contenus/beta/1789/symfony-creer-des-entites-a-partir-dune-bdd/">Symfony : créer des entités à partir d’une BDD</a> </p>
</div>
<p>Merci d’avance pour vos commentaires.</p>Symfony : créer des entités à partir d'une BDD, message #1605992017-08-25T04:09:39+02:00amael/@amaelhttps://zestedesavoir.com/forums/sujet/8834/symfony-creer-des-entites-a-partir-dune-bdd/?page=1#p160599<p>Bonjour les agrumes !</p>
<p>La bêta a été mise à jour (mise à la troisième personne du pluriel) et décante sa pulpe
à l’adresse suivante :</p>
<div align="center">
<p><a href="https://zestedesavoir.com/contenus/beta/1789/symfony-creer-des-entites-a-partir-dune-bdd/">Symfony : créer des entités à partir d’une BDD</a> </p>
</div>
<p>Merci d’avance pour vos commentaires.</p>Symfony : créer des entités à partir d'une BDD, message #1544832017-06-26T11:28:25+02:00dwaps/@dwapshttps://zestedesavoir.com/forums/sujet/8834/symfony-creer-des-entites-a-partir-dune-bdd/?page=1#p154483<p>Merci pour ce petit retour, cher Ymox. <img alt=":)" src="/static/smileys/smile.png"> Je vois bien que tu es un passionné, c’est très bien.</p>
<p>Moi j’aurais prononcer Kévin de cette façon : ’Kévinne’, mais bon chacun est libre après tout.</p>
<p>Une chose à savoir : un tutoriel n’est pas forcément fait pour ajouter une valeur à la doc, il peut aussi rendre plus accessible cette dernière sans pour autant être aussi exhaustif (ce qui serait plutôt prétentieux, tu ne penses pas ?). En d’autres termes, cela signifie qu’il y aura toujours des subtilités à soulever quant à l’élaboration d’un tutoriel, et il pourra toujours être améliorer. Je te remercie pour ta contribution mais pourquoi, justement, ne te proposes-tu pas comme co-auteur si tu penses être en mesure d’apporter une valeur ajoutée à cette ébauche ? J’en serais ravi car, comme je te l’ai dis, je ne pourrais pas bosser dessus en ce moment malheureusement. Tu pourrais aussi rajouter un lien vers la documentation ? (Une idée, comme ça).</p>Symfony : créer des entités à partir d'une BDD, message #1543772017-06-24T23:30:49+02:00Ymox/@Ymoxhttps://zestedesavoir.com/forums/sujet/8834/symfony-creer-des-entites-a-partir-dune-bdd/?page=1#p154377<p>Merci de ton retour <img src="/static/smileys/svg/smile.svg" alt=":)" class="smiley"></p>
<figure><blockquote>
<blockquote>
<p>Je suis aussi surpris qu’il faille passer par un autre format quand on souhaite avoir les entités sous forme d’annotations
— [Ymox]</p>
</blockquote>
<p>???<br>
J’ai dit ça moi ? Je prendrai le temps de bien me relire…</p>
</blockquote><figcaption><a href="#p154369">dwaps</a></figcaption></figure>
<p>Pas directement : on peut bien avoir les entités avec les annotations, mais il faut passer par un autre format pour générer les accesseurs et mutateurs. Du coup, je reviens avec ma question : pourquoi est-ce nécessaire ? Soucis de cache, ou il n’y a vraiment pas d’autre moyen ? Et du coup, pourquoi ne pas directement faire passer par un autre format, puis supprimer les mappings qui risquent de poser problème par la suite ?<br>
Parce qu’imaginons Kévin (prononcer dans ce cas précis "quai 20") a ainsi généré ses entités avec les annotations, est passé par le XML pour pouvoir générer les mutateurs et accesseurs, puis souhaite ajouter quelque chose. Comme il a les annotations, il va ajouter avec les annotations. Mais <a href="/forums/sujet/1352/foire-aux-questions-symfony/?page=2#p23301">il n’a pas supprimé les mappings XML qui priment sur les annotations…</a><br>
Question subsidiaire : quand on ajoute ainsi une propriété avec annotations dans une entité (et qu’on n’a bien que des annotations pour les mappings), comment fait-on pour générer les méthodes get* et set*, on passe aussi par un autre format ? Si oui, pourquoi utiliser les annotations, alors ? Et si non, on en revient à ma question initiale…</p>
<h4 id="edit">Edit<a aria-hidden="true" href="#edit"><span class="icon icon-link"></span></a></h4>
<p>OK, même dans <a href="http://symfony.com/doc/current/doctrine/reverse_engineering.html">la documentation officielle de Symfony</a> ils disent qu’il faut passer par un format intermédiaire. Notons au passage qu’ils font comme je le proposais, à savoir convertir d’abord en (X|YA)ml|PHP, et ensuite convertissent en annotations.</p>
<p>A noter aussi que, vu la documentation, il est difficile de voir la valeur ajoutée de ton tutoriel par rapport à elle.</p>Symfony : créer des entités à partir d'une BDD, message #1543722017-06-24T19:47:21+02:00dwaps/@dwapshttps://zestedesavoir.com/forums/sujet/8834/symfony-creer-des-entites-a-partir-dune-bdd/?page=1#p154372<p>Bonjour les agrumes !</p>
<p>La bêta a été mise à jour et décante sa pulpe
à l’adresse suivante :</p>
<div align="center">
<p><a href="https://zestedesavoir.com/contenus/beta/1789/symfony-creer-des-entites-a-partir-dune-bdd/">Symfony : créer des entités à partir d’une BDD</a> </p>
</div>
<p>Merci d’avance pour vos commentaires.</p>Symfony : créer des entités à partir d'une BDD, message #1543712017-06-24T19:41:50+02:00dwaps/@dwapshttps://zestedesavoir.com/forums/sujet/8834/symfony-creer-des-entites-a-partir-dune-bdd/?page=1#p154371<p>Bonjour les agrumes !</p>
<p>La bêta a été mise à jour et décante sa pulpe
à l’adresse suivante :</p>
<div align="center">
<p><a href="https://zestedesavoir.com/contenus/beta/1789/symfony-creer-des-entites-a-partir-dune-bdd/">Symfony : créer des entités à partir d’une BDD</a> </p>
</div>
<p>Merci d’avance pour vos commentaires.</p>Symfony : créer des entités à partir d'une BDD, message #1543692017-06-24T19:10:00+02:00dwaps/@dwapshttps://zestedesavoir.com/forums/sujet/8834/symfony-creer-des-entites-a-partir-dune-bdd/?page=1#p154369<p>Salut Ymox,</p>
<blockquote>
<p>Et ne pas confondre une représentation des tables avec un diagramme de classes UML, ce n’est pas la même chose (il suffit de penser aux tables intermédiaires dans les ManyToMany).
– [Ymox]</p>
</blockquote>
<p>Il est évident qu’un diagramme <em>UML</em> n’est pas une représentation des tables de la <em>BDD</em>. Et par rapport à mon tuto, je pousse un grand OUPS sur mon intro : je viens de la relire et je me rends compte que je l’ai écrite trop vite. En effet, elle ne rends pas compte de l’objectif du tutoriel ni du titre d’ailleurs puisqu’il s’agit de présenter la procédure <em>BDD –> entities</em> dans l’essentiel. Alors merci Ymox pour ta remarque : je vais reformuler mon intro.</p>
<blockquote>
<p>…les entités ne sont pas la BDD, même si elles y sont fortement liées il est vrai. Je pense qu’il faudrait reformuler ça…
– [Ymox]</p>
</blockquote>
<p>Je comprends l’amalgame qui peut être fait. Mon excuse est la même que précédemment : ce tuto est en cours et je n’ai encore eu le temps de l’affiner, et du coup : merci d’avoir pris le temps de me relire ! Il est tout aussi évident que les entités ne sont PAS la <em>BDD</em> pour reprendre tes propos (plus précisément les <em>tables</em> de la <em>BDD</em>). En écrivant cela, j’avais en tête l’objet général du cours…</p>
<blockquote>
<p>Dans l’ordre, vous :
1. donnez la commande pour exporter directement au format annotation ;
2. parlez des autres formats qui nécessitent l’utilisation de doctrine:generate:entities comme "une étape supplémentaire"…
3. … étape que vous devez ensuite utiliser quand vous voyez que les entités générées avec annotations n’ont pas les getters et setters…
4. … en repassant par un autre format de mapping.
– [Ymox]</p>
</blockquote>
<p>Oui, je donne la commande pour exporter directement en annotation, tu as bien lu ! Dans mon désir d’aller pas à pas, j’ai voulu exposer une seule commande. C’est pour cette raison que les autres sont données NON <strong>comme une étape supplémentaire</strong> comme tu le penses mais dans un aparté. Cela signifie que celles-ci sont présentées comme autres alternatives possibles (chaque format présentant ses propres avantages et inconvénients). Et en passant même si j’apporte une appréciation personnelle sur le <em>XML</em>, cela ne signifie pas pour autant que je le considère inutile, car dans bien des cas ce format rend bien des services, et dans le contexte Symfony ce n’est pas pour rien que beaucoup des bundles populaires en font usage !</p>
<blockquote>
<p>Je suis aussi surpris qu’il faille passer par un autre format quand on souhaite avoir les entités sous forme d’annotations
– [Ymox]</p>
</blockquote>
<p>???
J’ai dit ça moi ? Je prendrai le temps de bien me relire…</p>
<blockquote>
<p>Donnez directement la marche à suivre correcte et efficace, puis expliquez le cas particulier.
– [Ymox]</p>
</blockquote>
<p>Bon là, il s’agit d’un problème d’appréciation personnelle sur la structuration du tuto. Je suis disposé à changer ça mais je ne pourrais pas le faire rapidement malheureusement. Du coup, si tu veux apporter ta contribution n’hésites pas à me demander de t’ajouter comme co-auteur, j’en serais ravi. De cette façon, tu pourrais mentionner également le complément sur les relations complexes. <img alt=";)" src="/static/smileys/clin.png"></p>
<p>Pas de soucis non plus pour le côté "nous" : à partir du moment où quelqu’un fait des modifications, il est tout à fait normal de ré-adapter. L’important étant que le "nous" soit légitime, c’est tout. Donc, sens-toi libre, tu as mon feu vert !</p>Symfony : créer des entités à partir d'une BDD, message #1542032017-06-22T18:57:55+02:00Ymox/@Ymoxhttps://zestedesavoir.com/forums/sujet/8834/symfony-creer-des-entites-a-partir-dune-bdd/?page=1#p154203<figure>
<blockquote>
<p>Alors, en fait, je ne suis que le correcteur, comme c’est Dwaps qui a tout écrit, j’ai laissé les "je". Il faut peut-être que l’on soit plus clairs sur ce point, ou alors que l’on remplace les "je" par des "nous", mais je n’apprécie pas cette solution car elle ferait que je m’approprierais le travail de quelqu’un d’autre.</p>
</blockquote>
<figcaption><a href="#p154199">amael</a></figcaption>
</figure>
<p>Je m’en doutais, mais effectivement sans précision, ça ne me paraissait pas clair. Soit le rôle de chacun est à préciser, soit seul le "véritable" auteur reste l’auteur du tutoriel.</p>
<p>Si j’ai bien compris, la mise à jour ne concerne que les corrections orthographiques/syntaxiques/grammaticales ?</p>Symfony : créer des entités à partir d'une BDD, message #1542002017-06-22T18:11:24+02:00amael/@amaelhttps://zestedesavoir.com/forums/sujet/8834/symfony-creer-des-entites-a-partir-dune-bdd/?page=1#p154200<p>Bonjour les agrumes !</p>
<p>La bêta a été mise à jour suite à quelques remarques de Ymox (merci <img alt=":)" src="/static/smileys/smile.png"> ) et décante sa pulpe
à l’adresse suivante :</p>
<div align="center">
<p><a href="https://zestedesavoir.com/contenus/beta/1789/symfony-creer-des-entites-a-partir-dune-bdd/">Symfony : créer des entités à partir d’une BDD</a> </p>
</div>
<p>Merci d’avance pour vos commentaires.</p>Symfony : créer des entités à partir d'une BDD, message #1541992017-06-22T18:04:45+02:00amael/@amaelhttps://zestedesavoir.com/forums/sujet/8834/symfony-creer-des-entites-a-partir-dune-bdd/?page=1#p154199<p>Alors, je retiens tes propositions, mais il y en a une qui m’embête.</p>
<figure>
<blockquote>
<p>Je le relève dans cette phrase, mais vous êtes deux auteurs, ça fait donc bizarre de voir un "je".</p>
</blockquote>
<figcaption>Ymox</figcaption>
</figure>
<p>Alors, en fait, je ne suis que le correcteur, comme c’est Dwaps qui a tout écrit, j’ai laissé les "je". Il faut peut-être que l’on soit plus clairs sur ce point, ou alors que l’on remplace les "je" par des "nous", mais je n’apprécie pas cette solution car elle ferait que je m’approprierais le travail de quelqu’un d’autre.</p>
<p>De plus, pour celles qui concernent trop le fonds du propos, je ne suis pas l’auteur, et donc ce n’est pas moi qui décide…</p>Symfony : créer des entités à partir d'une BDD, message #1539642017-06-21T11:04:53+02:00Ymox/@Ymoxhttps://zestedesavoir.com/forums/sujet/8834/symfony-creer-des-entites-a-partir-dune-bdd/?page=1#p153964<p>Salut !</p>
<p>J’ai parcouru avec attention votre tutoriel, et voici mes retours.</p>
<blockquote>
<p>Après avoir fait les diagrammes de classes en UML, il est facile de générer toutes les entités nécessaires en ligne de commande. Le chemin inverse est tout aussi facile. C’est exactement ce que je vous propose de voir ici.</p>
</blockquote>
<p>Le chemin inverse de "générer toutes les entités [depuis le diagramme UML]", c’est de créer le diagramme de classes UML depuis les entités, à mon sens, mais je ne crois pas que ce soit ce que vous faites ni ce que vous voulez dire.<br>
Et ne pas confondre une représentation des tables avec un diagramme de classes UML, ce n’est pas la même chose (il suffit de penser aux tables intermédiaires dans les ManyToMany).</p>
<blockquote>
<p>Nous ne créerons pas l’interface utilisateur dans ce tutoriel. Ici, nous ne travaillerons que la BDD.</p>
</blockquote>
<p>Oui et non, les entités ne sont pas la BDD, même si elles y sont fortement liées il est vrai. Je pense qu’il faudrait reformuler ça, l’idée étant que Symfony est un framework MVC, on va ici s’occuper que de la partie M[odèle].</p>
<blockquote>
<p>Voici sans tarder le code SQL que je vous propose :</p>
</blockquote>
<p>Je le relève dans cette phrase, mais vous êtes deux auteurs, ça fait donc bizarre de voir un "je".</p>
<blockquote>
<p>Génération d’un bundle pour la gestion modèle</p>
</blockquote>
<p>[…] la gestion <strong>des modèles</strong></p>
<p>Pour la partie "Création des entités depuis la BDD", je suis relativement surpris.</p>
<p>Dans l’ordre, vous :</p>
<ol>
<li>donnez la commande pour exporter directement au format annotation ;</li>
<li>parlez des autres formats qui nécessitent l’utilisation de <code>doctrine:generate:entities</code> comme "une étape supplémentaire"…</li>
<li>… étape que vous devez ensuite utiliser quand vous voyez que les entités générées avec annotations n’ont pas les getters et setters…</li>
<li>… en repassant par un autre format de mapping.</li>
</ol>
<blockquote>
<p>Bref, j’espère que vous comprenez à quel point j’ai voulu vous rendre service…</p>
</blockquote>
<p>Non.<br>
Donnez directement la marche à suivre correcte et efficace, puis expliquez le cas particulier, ce sera plus simple et compréhensible à mon avis.</p>
<p>Je suis aussi surpris qu’il faille passer par un autre format quand on souhaite avoir les entités sous forme d’annotations. Est-ce que c’est vraiment nécessaire ? Est-ce que ce n’est pas simplement un souci de cache qui fait que les entités ne sont pas immédiatement reconnues ? Dans ce cas, pourquoi ne pas simplement utiliser un <code>cache:clear</code> ?</p>
<p>Dernier point : il n’est actuellement pas fait mention que certaines relations "complexes" pourront ne pas être reconnues correctement, ni que (du moins dans mon souvenir datant de Doctrine 2.4) les relations ne sont pas automatiquement bi-directionnelles, et donc demandent une reprise "manuelle" des entités et le cas échéant des mappings. Je pense qu’il est nécessaire de préciser que cela fournit des entités "de base" dans des cas simples, mais qu’il faut bien faire attention avant de se reposer sur ce qui a été généré de cette manière.</p>Symfony : créer des entités à partir d'une BDD, message #1538992017-06-20T17:25:18+02:00amael/@amaelhttps://zestedesavoir.com/forums/sujet/8834/symfony-creer-des-entites-a-partir-dune-bdd/?page=1#p153899<p>Tout le monde se secoue ! <img alt=":D" src="/static/smileys/heureux.png"></p>
<p>Dwaps a commencé (mardi 18 avril 2017 à 11h54) la rédaction d’un tutoriel au doux nom
de « Symfony : créer des entités à partir d’une BDD » et nous avons pour objectif de proposer en validation
un texte aux petits oignons. Je fais donc appel à votre bonté sans
limites pour dénicher le moindre pépin, que ce soit à propos
du fond ou de la forme. Vous pourrez consulter la bêta à votre guise à
l’adresse suivante :</p>
<div align="center">
<p><a href="https://zestedesavoir.com/contenus/beta/1789/symfony-creer-des-entites-a-partir-dune-bdd/">À présent, c’est à vous !</a> </p>
</div>
<p>Merci !</p>MappedSuperClass et héritage de classes d'entités, message #295252014-11-16T03:14:48+01:00melepe/@melepehttps://zestedesavoir.com/forums/sujet/1593/mappedsuperclass-et-heritage-de-classes-dentites/?page=1#p29525<p>Effectivement, vu comme ça. <img alt=":)" src="/static/smileys/smile.png"></p>MappedSuperClass et héritage de classes d'entités, message #291312014-11-13T16:34:05+01:00Ymox/@Ymoxhttps://zestedesavoir.com/forums/sujet/1593/mappedsuperclass-et-heritage-de-classes-dentites/?page=1#p29131<figure><blockquote>
<p>Dans les classes abstraites non persistées (dont notre classe va hériter), les annotations Doctrine passent tranquillement, donc je pense que ca doit être pareil pour les interfaces.
</p>
</blockquote>
<figcaption><p><a href="http://zestedesavoir.com/forums/sujet/1593/mappedsuperclass-et-heritage-de-classes-dentites/?page=1#p29107">melepe</a></p></figcaption></figure><p>A ceci près que dans les interfaces, tu ne peux pas spécifier d'attributs, seulement des constantes, si je ne me trompe pas. Du coup, les interfaces ne servent pas à grand-chose pour Doctrine…</p>