T'es un super pédagogue Lior. Je visualise souvent tes vidéos plusieurs fois car elles sont extrêmement riches. Bravo et merci 1000 fois pour tes partages.
Cela fait plusieurs fois que j’essaye symfony et que je bute au niveau des gestions des entités, repo, forms... cette série de tutos d’initiation est celle qui me manquait pour enfin décrypter les mystères de ce framework ! Merci et bravo pour ce job. :-)
Slt Lior, sur la partie FAKER pour que ça fonctionne G du bidouiller(suivant stackoverflow) ds le fichier Lorem.php de Faker après l'erreur suivante < In Lorem.php line 95: join(): Argument #2 ($array) must be of type ?array, string given > normal ou pas ?
Bonjour Mr CHAMLA ! J'ai du mal à formuler ma phrase mais ce que j'éssai de vous faire comprendre c'est de vous dire que vous êtes meilleur dans ce que vous faites. je me suis former à travers vos tutoriels, en plus d'être satisfait j' en ai acquis des connaissance qui me permette d'avancer perpétuellement. grand Merci à vous!
Bravo cher Lior pour votre implication et dévouement. Votre façon d'expliquer est très pédagogue. Je vous en félicite et vous remercie du fond du cœur ...
Vidéo super bien expliquée ! J'adore vraiment suivre tes tutos ! J'ai toutefois une petite remarque à te faire :D Lorsque tu modifies dans le show.html.twig pour rajouter le {{ article.category.title}} ça ne modifie pas sur la page d'index. Il serait bon de préciser qu'il faut le modifier aussi sur cette page index.html.twig pour que les catégories nouvellement créées s'affichent aussi ici ! En dehors de cela, rien à redire. Un vrai plaisir et régal de suivre tes tutos qui sont vraiment excellents !
Je n'ai pas pour habitude de laisser des commentaires, mais il est clair que tu mérites un meilleur référencement ! Je t'ai découvert en cherchant des tutos sur symfony et j'aime beaucoup t'as façon de faire ! Bravo et merci :)
Vraiment super. Ce tuto m'as beaucoup aidé. Coment gérer l'heritage entre les entités. J'ai vraiment cherché dans la doc mais hélas. Une vidéo la dessus serait vraiment cool
Je ne commente pas souvent mais là.... Quelle pédagogie, bravo Lior franchement tu rends le truc super claire ! Et malgré la dose importante d'informations ça passe bien, même si pour moi il va falloir regarder plusieurs fois les vidéos pour bien assimiler :) On sens que tu maîtrises le sujet et que tu aimes partager. Un grand bravo et merci !
Excellent, je dévore les vidéos ! C'est un vrai plaisir à regarder, merci ! J'ai même réussi à faire la question subsidiaire, le formulaire d'ajout de commentaire sans trop trop galérer alors qu'avant cette vidéo je n'aurais jamais réussi.
Super intéressant, des longueurs un peu sur des idées évidentes, peut être, qui peuvent être source d'impatience, mais ca peut être utile pour ceux qui commencent de prendre le temps d'expliquer. Merci pour le boulot !!
Super vidéo, c'est la 2ème que je regarde et niveau pédagogie vous êtes au top ! Vous vulgarisez super bien les concepts pour que les juniors comprennent continuez comme ça, merci pour votre travail !
Merci pour tes vidéos, tout est vraiment bien expliqué et ça rends l'apprentissage de Symfony beaucoup plus simple. Grâce à toi je progresse énormément :)
Merci à toi :-) n'oublies pas que j'ai une formation de 20h sur Udemy à ce sujet (lien dans la description) et par ailleurs n'hésites pas à t'abonner et à partager, ça aidera la chaîne :)
Excellents tutos ! J'apprends mieux grâce à toi & en plus c'est super bien expliqué ! Merci :D J'ai cependant un petit soucis. J'ai choisis de partir sur la relation ManyToMany, ce qui a créé une table (category_article) en BDD qui joint les ids des Articles & Categories; suite à ce choix, lorsque je souhaite éditer/créer un article j'ai le message suivant : "Could not determine access type for property "categories" in class "App\Entity\Article": The property "categories" in class "App\Entity\Article" can be defined with the methods "addCategory()", "removeCategory()" but the new value must be an array or an instance of \Traversable, "App\Entity\Category" given.. " Je me doute qu'il faut faire une modif dans ArticleController au niveau de la fonction form(), pour update la table en question mais je n'arrive pas à trouver comment faire. J'ai tenté de regarder la doc de Symfony, mais j'ai du mal à la comprendre :/ Aurais-tu une piste à me proposer ? Merci par avance !
Désolé de répondre si tard, mais je pense qu'il te suffit de rajouter l'option "multiple" => true dans la configuration de ton EntityType des catégories pour ne plus avoir UNE CATEGORIE mais UN TABLEAU DE CATEGORIES :)
Merci beaucoup pour cette série de vidéo !! il n'y a pas plus clair pour les débutant en framework Je voulais aussi savoir quelles extensions vsocde tu utilises, parce qu'avoir accès aux extensions HTML dans un fichier twig me ferait gagne bcp de tps Surtout continue comme ça !
Super vidéo, je découvre Faker que j'utiliserai peut-être très vite. Mon projet prend une forme pro. Je vais pouvoir travailler plus facilement en équipe dans un futur proche. Un grand merci :D
Bonjour Lior, j'aime beaucoup tes tutos, très clairs et faciles à suivre ! Il semble qu'il y ait un soucis avec le composant faker, la commande de composer me retourne le message suivant : "Package fzaninotto/faker is abandoned, you should avoid using it. No replacement was suggested". Un alternative a proposer ?
Non lorsque tu tape ta commande avec composer require:fzaninotto/faker laisse ca jusqu'à la fin ne touche rien ce message sort toujours mais ne cause aucun problème ca m'est arrivé aussi plusieurs fois mais je travaille tranquillement. FML
Bonjour si il y a des gens qui n'arrive pas à faire doctrine:migrations:migrate , -supprimer toutes les migrations du dossier /migrations après avoir enlever les fixtures sur phpMyAdmin et refaite : php bin/console make:migration -puis refaite : php bin/console doctrine:migrations:migrate
C'est très intéressant merci, ça aurait été bien également de voir comment générer puis modifier des entités et repos à partir de bases et contraintes existantes.
22:23 «Qu'est-ce qu'on avait étudié ensemble lors du premier cours ? Les ? Les ???» MDR Monsieur le professeur ! Je n'ai pas pu m'empêcher de lever le doigt en donnant la réponse ! - Merci encore. Je n'ai jamais suivi des tutos aussi facilement sans perdre mon temps à rechercher où cela bug au détriment du suivi du cours. (C'est nécessaire de savoir débuguer, mais c'est plus encourageant si on arrive tout de suite à un résultat. On a toujours le temps de "s'amuser" à débuguer dans d'autres circonstances…
Bonjour Lior ceci ne marche pas: $content = '' . join($faker->paragraphs(6), '') . ''; Quand tu va dans le terminal tu tape php bin/console doctrine:fixtures:load ca affiche Notice: Array to string conversion. en plus dans VSCODE ca souligne ca:'') en rouge. qu'est faire s'il vous plait ?
Bah c'est qui ton prof ? Et au fait : tu comprends mieux avec moi parce que c'est la deuxième fois que tu le vois, et que ton prof a déjà passé la première couche :)
@@LiorCHAMLA Haha, je balancerais pas :) Mais c'est vrai que la 2nde réécoute aide toujours. Je dois aussi maintenant parcourir les méandes pour comprendre les Event Listener pour voir si des fonctions peuvent être appelées car là, même tes vidéos ou les docs ne m'aident plus :) Merci en tout cas pour ces vidéos
super video. Merci beaucoup. une petite question: apres qu'on a vider la base de donne mes articles commencent avec l'id 16 . l'autoincrementation de l'id ne se remet pas a un.
Merci infiniment pour vos cours ça nous sauve la vie, pourrait-vous nous donné quelques notions concernant les entités de type relation intermédiaire; par exemple (une entité devis, une entité produit , et une entité devisproduit dans le but de choisir une quantité précise du produit pour chaque devis)?
Katia Toubal pas dans ces vidéos UA-cam malheureusement mais dans la future formation payante. Restez branchés sur la chaîne j'offrirai des réductions dans une future vidéo
Hello! Tout d'abord merci pour ces vidéos gratuites très bien faites et très abordables! Petite question, à 14' env, vous parlez de migration suite à l'ajout d'une entité + relation avec une autre entité. Cette relation nécessite que Article possède une propriété catégorie non nulle. Lors de la migration (solution 1 ou 2) cela écrase/supprime les anciens articles . N'y a t il pas moyen de conserver les anciens articles même s'ils n'ont pas de catégorie? Autrement qu'en ouvrant la bdd et en ajoutant manuellement une catégorie à chacun avant la migration ?
Et non ! Pour des cas très spécifiques comme cela, tu devras modifier ta migration afin de prendre soin des tables qui posent des soucis particuliers :)
Bonsoir j'ai cette erreur lors de la migration : Argument #1 ($createdAt) must be of type DateTimeImmutable, DateTime given J'ai également une erreur si je change le paramètre de setCreatedAt() dans la classe Comment
Salut, superbe vidéo, ça fait réviser l'épisode 1 et apprendre les relations / faker :) Petite question, aurais-tu un lien de la doc twig pour ce qui est de l'ordre d'affichage ? Actuellement on affiche les articles / commentaires avec des boucles for. Je m'explique, les articles / commentaires ne sont pas affichés (triés) par date croissante / décroissante mais par ID. Avec la fixture, ça casse un peu la réalité. Après on sait très bien qu'une fois le site en ligne cela ne posera pas forcément de soucis. Voilà c'était juste pour savoir s'il existait cette possibilité de tri par date ! Merci beaucoup pour l'investissement dans tes vidéos
Bah tu as la documentation officielle de Twig avec notamment un filtre qui s'appelle "sort" mais je ne pense pas qu'il nous aide dans le cas que tu décris. Dans le cas que tu décris il faudrait plutôt une requête DQL (l'équivalent de SQL avec Doctrine) qui classe les commentaires dans l'ordre de date de création par exemple.
C'est fait depuis juin :) Présentation ici : ua-cam.com/video/AgFWVnBwyJc/v-deo.html Et un lien de réduction dans la description : learn.web-develop.me/developpement-moderne-avec-apiplatform-symfony-et-react?coupon=REDUC55
migrations:migrate va vider la base de données et jouer les migrations qui existent ; schema:update va s'en foutre des migrations qui existent et va tout de suite faire correspondre ta base de données et tes entités. DONC : si tu as une entité que tu as fait évoluer, mais que tu ne créé pas la migration qui contient cette évolution, en faisant un migrations:migrate, tu vas pas voir cette évolution dans la base de données alors qu'en faisant un schema:update, tu vas les voir :)
Pour aller plus loin, j'ai créé une table author reliee en OneToMany à la table article (1 auteur peut ecrire plusieurs articles, 1 article n'a qu'1 seul auteur) et j'aimerais evidemment afficher un champs dans le formulaire d'edition. Je veux que ce soit un input texte prérempli avec l'auteur actuel mais je n'y arrive pas. Dans ArticleType, j'ai ajouté à $builder ceci : ->add('auteur',TextType::class,[ 'data' => Author::class, 'label' => 'name' ]) Je précise : Ma table d'auteurs contient plusieurs auteurs 'auteur' bien le nom de ma classe dans l'entité Author.php, et contient la propriété 'name' Voilà voilà, dur dur appentissage :)
Stéphane Joos non tu ne peux pas faire ça. Ton auteur c'est une entité donc tu ne peux pas le réduire à un champ texte. C'est forcément un champ Entity. A la limite tu ferais dans ton formulaire un champ author_name qui serait du type text, puis 2 choses à faire : Lors de l'affichage le remplir avec le nom de l'auteur de l'article (si c'est un article qui existe et qui a donc un auteur) Lors de la sauvegarde analyser le champ, chercher l'entité author qui correspond à ce name grâce à repository des auteurs puis indiquer à l'article qu'il appartient à cet auteur. Mais ça me semble un peu poussif surtout que je pourrai très bien écrire le nom d'un auteur qui n'existe pas et l'article se retrouverait sans auteur 😕
Allez Hop, c'est cadeau Une petite fonction à ajouter dans ArticleRepository.php pour trier les articles par date de création décroissante public function getArticlesSortedByDescDate() { $qb = $this->createQueryBuilder('t') ->orderBy('t.createdAt', 'DESC'); return $qb->getQuery()->getResult(); } evidemment il faut remplacer findAll par getArticlesSortedByDescDate(); dans l'index de BlogController
Bonjour et Merci pour toutes ces vidéos de qualités! J'aurai une question sur les bonnes pratiques dans Symfony : vaut il mieux utiliser les anotations, qui à mon sens vont surcharger le code ou un fichier yml? Merci d'avance pour votre réponse et encore bravo pour votre sens pédagogique et la clarté de vos exposés.
Iles Kourylles moi je dirai que ça dépend du projet et de ton état d'esprit. Une appli avec un ou deux controllers qui ont 2 ou 3 routes chacun les annotations sont ok. Mais je privilégierai peut être le fichier yaml si j'ai beaucoup de routes à décrire. Ça me permet de voir l'ensemble de mes routes en un seul coup d'œil sur un seul fichier. Après t'as des mecs qui sont ok d'avoir 30 controllers avec les annotations et t'as des mecs qui même pour un seul controller préfèrent le fichier yaml
Merci pour cette réponse rapide. A la normande, mais je m'en doutais un peu ! Ce qui me rassure c'est qu'il n'y a pas de méthode meilleure qu'une autre. je développe sur mes loisirs une appli web de gestion d'une association et je m'essaie à l'utilisation d'un framwork. La doc SYMFONY est bien faite mais ce sont sont surtout tes tutoriels qui précisent parfaitement les points essentiels du framework qui me permettent d'avancer rapidement. je vais donc rester avec mes travers psycho-rigide et garder toutes mes paramètres au même endroit dans les fichiers yaml, cela me parait plus propre. Merci encore et au plaisir de te lire Lionel
Bonjour Lior ! et Merci beaucoup pour tes tutos, j'étais sur Laravel, j'avais peur de me lancer sur symfony et franchement la ..c'est le TOP !!! :) Petite question, c'est moi ou on pas vu la partie "Delete Article" ou "Delete Commentaire" Tu pourrais faire un petit com, pour expliquer comment on peut mettre ca en place ?
Bonsoir Lior, merci pour pourquoi: I Cannot autowire argument $manager of "App\Controller\BlogController::form()": it references interface "Doctrine\Common\Persistence\ObjectManager" but no such service exists. Did you create a class that implements this interface? Pourtant, quand je cree des objets fixtures, il marche.
@@LiorCHAMLA Ah oui, merci! En effet, je ne le trouve pas dans la list des autoriwing. Je vais regarder comment utiliser EntityMangagerInterface. Bonne fin semaine. Bien coridialement
merci pour cette video c'est top! j'ai une question : dans ArticleFixtures.php, les boucles sont imbriquées ca ok, mais le cheminement j'ai du mal à voir .. merci
Dans la première boucle, je créé une catégorie (mais comme c'est une boucle, ça va se faire plusieurs fois), et pour chaque catégorie que je créé, je fais une autre boucle où je créé des articles qui seront liés à cette catégorie. Donc ça donne : BOUCLE 1 : Je créé une catégorie et une boucle qui crééra des articles de cette catégorie BOUCLE 2 : Je créé une catégorie et une boucle qui crééra des articles de cette catégorie BOUCLE 3 : Je créé une catégorie et une boucle qui crééra des articles de cette catégorie etc etc
salut frero,j'aime bien tes tutos...mais j'ai eu une erreur quand je veux migrer la table Category et Commant dans la base de donnees je ne trouve pas auccune solution sur le net..on me dit que la table article existe deja mais c ne apparaitre pas dans la base de donnees MYSQL.....
Bonjour et tous d'abord merci pour vos cours qui sont vraiment au top pour bien comprendre symfony. J'écris pour vous demander un conseil sur l'élaboration d'une entity avec une relation oneToOne : j'ai 2 tables, AA qui est en relation avec la table BB en oneToOne. J'aimerais pourvoir créer une seconde relation entre les 2 pour un autre champs : AA.gg => BB.id (champ BB.xx='PA') AA.kk => BB.id (champ BB.xx='PR'). En gros ma table BB doit avoir plusieurs type de données en relation avec plusieurs champs de AA relié par un champ xx. Merci par avance pour vos conseils et votre aide. Cordialement worg
Alors comme je comprend pas trop ce que tu recherches et ce que tu veux dire donc je peux pas trop aider mais voici la documentation de doctrine sur les relations www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/association-mapping.html et sinon je pense que peut-être d'autres personnes ont peut-être traité le sujet. Et aussi, je pense que le mieux ce soit de faire des expérimentations.
Bon j'ai trouvé une solution en utilisant du oneToMany mais bon ce n'est pas très propre... Pour mieux comprendre, j'ai une table achat et une table budget. Dans le principe pas de pb oneToOne achat.budget -> budget.id. Mais là je voulais créé 2 entrée vers budget : achat.budget (prévus) -> budget.id et budget.type (prévus) et achat.budget (payé) -> budget.id et budget.type (payé) Donc en gros 2 entrée dans achat mais qui renvois vers 2 lignes budget . J'ai donc trouvé 2 solutions, 1 seul ligne budget et 2 champs (payé et prévus). Ou 2 lignes budgets avec du oneToMany. Je voulais voir si il existait un moyen plus propres comme les attributs en manyToMany (Relation Many-To-Many avec attributs) Merci encore pour votre aide et vos super tuto...
Bonjour Lior, j'ai ce message qui s'affiche quand je veux créer un nouveau article SQLSTATE[23000]: Integrity constraint violation: 1048 Le champ 'category_id' ne peut être vide (null) une idée ?
Hello, je n'ai pas encore vue la vidéo 4/4 mais je te vois énormément utiliser les annotations, en cours on a vue xml et yml. Pourrais tu faire une vidéo sur les annotations du coup afin de (que je ^^) vraiment bien comprendre tes vidéos géniales (je veux vraiment essayer de tout comprendre) (autre questions, on travail avec "schema:update" quand toi tu utilises "make:migration" , qu'elle est la différence ? ) et comme d'habitude UN GRAND merci !!
jerome moulin en gros les annotations sont un autre moyen de décrire des configuration. Y a pas grand chose à expliquer si ce n'est que ça s'utilise avec un arobase au début du nom de l'annotation. Les annotations en elles mêmes tu les découvre dans la documentation de Symfony en fonction du sujet que tu abordes. Ensuite je ne connais pas la commande schéma update. Je regarderai en rentrant de vacances quelles sont les différences 😊
Superbe vidéo, tout fonctionne pour moi :D Par contre c'est normal que les images changent à chaque fois que je réactualise? Merci ^^ dans la bdd l'id de l'image bouge pas pourtant ... xD
Bonjour j'ai un problème avec mon projet symfony. J'ai écrit la commande php bin/console make:entity User. L'entité User.php à été créée mais ne me donne pas la main d'ajouter d'autre propriété c'est à dire les attribut
Bonjour Lior merci pour votre Tutos mais moi jai un petit souci ci vous pouvez m'aider avec: j'ai 3 entity, commande, commandeItems, et category avec de la relation quand j'esaye de stocker l'objet commande dans la session jai cette erreur (Entity of type "App\Entity\Category" passed to the choice field must be managed. Maybe you forget to persist it in the entity manager? ) comme jutilise la category dans commandeitem comme liste deroulante. Merci d'avance !
@@LiorCHAMLA bonjour sa c'est pour Invoice: namespace App\Form; use App\Entity\Invoice; use App\Form\InvoiceItemType; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Component\Form\Extension\Core\Type\CollectionType; class InvoiceType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('taxable') ->add('date') ->add('invoiceItems', CollectionType::class, [ 'entry_type'=>InvoiceItemType::class, 'entry_options' => ['label' => false]
] ) ; } public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults([ 'data_class' => Invoice::class, ]); } } sa c'est pour InvoiceItem: namespace App\Form; use App\Entity\Category; use App\Entity\InvoiceItem; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Bridge\Doctrine\Form\Type\EntityType; use Symfony\Component\OptionsResolver\OptionsResolver; class InvoiceItemType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('weight') ->add('price') ->add('design', EntityType::class, [ 'class'=>Category::class, 'choice_label'=>'name', 'placeholder'=>'choose a design' ]) ; } public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults([ 'data_class' => InvoiceItem::class, ]); } } merci d'avance
@@LiorCHAMLA et quand jai ajouté cascad{persist} il enregistre à nouveau la categorie alors que jai deja des category dans la base de donne je n'ais juste qu'a attribuer les invoiceItem la categorie souhaité.
Hello Lior, j'ai un petit problème lorsque j'essaye d'executer les fixtures j'ai l'erreur suivante : Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes) in [CHEMIN] Base.php on line 195 + Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 32768 bytes) in [CHEMIN] OutOfMemoryException.php on line 1 Comment y remédier ? Merci d'avance !
En théorie il faudrait augmenter ta limite de taille mémoire pour php (ça se fait dans la configuration) mais c'est étonnant que tu l'aies déjà atteinte. Tu n'aurais pas une boucle infinie dans ta fixture ?
@@LiorCHAMLA bonjour j'ai le meme probleme j'ai modifié le fichier php.ini en modifiant la ligne memory_limit=128M par memory_limit=1024M mais toujours le meme probleme besoin d'aide
Merci lior pour tes formations j’apprends énormément et en tant que débutant je me débrouille bien grâce à toi. J’ai une question, je voudrais que quand on arrive sur la page catégorie séparer les catégories, je sais que sais possible, mais je ne sais pas comment faire. J’ai bien cherché sur le web et aussi sur le doc de symfony mais je n’ai pas trouvé de réponse. Peux-tu m’expliqué comment faire ou me donné un lien avec une explication pour moi avancé sur mon projet. Merci
Bah tu créées une fonction avec la route "/categories" et tu demande au Repository de te filer toutes les catégories, et dans ton twig tu boucle sur chaque catégorie et après tu fais ce que tu veux avec :-)
@@LiorCHAMLA oui c'est ce que j'ai fait mais j'ai une erreur, j'ai fait une relation avec les deux tables et j'ai une erreur qui ma dit ..... articles VS article..... et je ne sais pas ce que cela veut dire et je ne comprend pas pour quoi?
@@pimprenelle.erquelinnes6117 Je ne sais pas te répondre si je ne vois pas le code etc. Il faut simplement que tu comprennes comment marche une relation et que tu fasses ensuite ce que tu as envie de faire, peut-être essaye de reprendre à 0 avec deux nouvelles entités.
Bonjour Lior, Je patauge un peu au niveau des relations entre tables. J'ai une entity product liée à une entity category. Dans ma table category j'ai dejà 2 catégories présentes. Dans mon entity product, j'ai bien une méthode setProductCategory . Je pensais simplement qu'en passant en paramètre de cette méthode le chiffre 2, cela lierai mon produit à la categorie dont l'id est 2. Mais cela me renvoie une erreur. setProductCategory() must be an instance of App\Entity\Category or nul l, integer given dans mon entity cela donne ca : public function setProductCategory(?Category $productCategory): self { $this->productCategory = $productCategory; return $this; } Merci
T'es un super pédagogue Lior. Je visualise souvent tes vidéos plusieurs fois car elles sont extrêmement riches. Bravo et merci 1000 fois pour tes partages.
Merci pour ces compliments :-) heureux que ça te convienne !
Cela fait plusieurs fois que j’essaye symfony et que je bute au niveau des gestions des entités, repo, forms... cette série de tutos d’initiation est celle qui me manquait pour enfin décrypter les mystères de ce framework !
Merci et bravo pour ce job. :-)
Merci beaucoup :-)
Slt Lior, sur la partie FAKER pour que ça fonctionne G du bidouiller(suivant stackoverflow) ds le fichier Lorem.php de Faker après l'erreur suivante
< In Lorem.php line 95: join(): Argument #2 ($array) must be of type ?array, string given >
normal ou pas ?
tu es vraiment trop fort. Comment ne pas aimer le développement avec un formateur(animateur) comme toi. Un GRAND POUCE BLEU à toi merci
Merci beaucoup !
Je suis en alternance et je dois m'autoformer sur symfony pour débuter mon premier projet. Tes videos sont des merveilles, merci beaucoup!
Merci beaucoup Philippe !
champion je te suis a la vie a la mort car tes tutos son clair, precis et surtout tu rend le tout ultra simple
Bonjour Mr CHAMLA ! J'ai du mal à formuler ma phrase mais ce que j'éssai de vous faire comprendre c'est de vous dire que vous êtes meilleur dans ce que vous faites. je me suis former à travers vos tutoriels, en plus d'être satisfait j' en ai acquis des connaissance qui me permette d'avancer perpétuellement. grand Merci à vous!
De rien merci à toi pour ce beau commentaire :-)
Bravo cher Lior pour votre implication et dévouement. Votre façon d'expliquer est très pédagogue. Je vous en félicite et vous remercie du fond du cœur ...
De rien Younes, merci à vous de me suivre :-)
Vidéo super bien expliquée ! J'adore vraiment suivre tes tutos !
J'ai toutefois une petite remarque à te faire :D
Lorsque tu modifies dans le show.html.twig pour rajouter le {{ article.category.title}} ça ne modifie pas sur la page d'index. Il serait bon de préciser qu'il faut le modifier aussi sur cette page index.html.twig pour que les catégories nouvellement créées s'affichent aussi ici !
En dehors de cela, rien à redire. Un vrai plaisir et régal de suivre tes tutos qui sont vraiment excellents !
Merci énormément pour ce commentaire :-)
Il y en a qui sont attentif ici 👍
Merci, mais j'ai toujours un problème avec les commentaires pour le {% for comment in article.comments %} :(
Je n'ai pas pour habitude de laisser des commentaires, mais il est clair que tu mérites un meilleur référencement ! Je t'ai découvert en cherchant des tutos sur symfony et j'aime beaucoup t'as façon de faire ! Bravo et merci :)
Merci beaucoup :)
Vraiment super. Ce tuto m'as beaucoup aidé. Coment gérer l'heritage entre les entités. J'ai vraiment cherché dans la doc mais hélas. Une vidéo la dessus serait vraiment cool
Je ne commente pas souvent mais là.... Quelle pédagogie, bravo Lior franchement tu rends le truc super claire ! Et malgré la dose importante d'informations ça passe bien, même si pour moi il va falloir regarder plusieurs fois les vidéos pour bien assimiler :) On sens que tu maîtrises le sujet et que tu aimes partager. Un grand bravo et merci !
Merci à toi pour ce commentaire et de m'avoir regardé :-)
Merci Lior grâce à tes vidéos j'ai pu réaliser mon premier site en symfony 4 et d'apprendre des bonnes pratique
Merveilleux :)
Merci Lior. Ta formation me remplace celle que j'attend de maboite depuis 6 mois alors que je commence sur un projet en symfony .. Top .
Très heureux Laurent :)
Merci au passage, je te propose la syntaxe: $content = join('',$faker->paragraph(5));
Excellent, je dévore les vidéos ! C'est un vrai plaisir à regarder, merci ! J'ai même réussi à faire la question subsidiaire, le formulaire d'ajout de commentaire sans trop trop galérer alors qu'avant cette vidéo je n'aurais jamais réussi.
Je suis très content :) merci à toi :)
Super tutoriel. Felicitation à vous pour le rendu simple, compréhensif et riche de vos tutos
Merci beaucoup
Super intéressant, des longueurs un peu sur des idées évidentes, peut être, qui peuvent être source d'impatience, mais ca peut être utile pour ceux qui commencent de prendre le temps d'expliquer. Merci pour le boulot !!
Merci beaucoup pour ce commentaire :)
Lior c'est devenu mon tuteur de stage :p
Merci pour les vidéos. Elles me permettent de faire mon projet de fin de formation !
Haha merci :)
Super vidéo, c'est la 2ème que je regarde et niveau pédagogie vous êtes au top ! Vous vulgarisez super bien les concepts pour que les juniors comprennent continuez comme ça, merci pour votre travail !
Merci :-)
Merci pour cette formation super claire !!!!!
Bravo et merci encore
J'attendais la suite avec impatience, merci Sensei pour cette nouvelle vidéo, Au top !
J'ai fini une formation Développeur Web, mais on a pas vu Symfony. Grâce à toi, je me forme encore et encore ;) Merci :)
De rien et merci à toi de regarder mes vidéos :-)
Encore merci beaucoup Lior, faire meilleur pédagogue ça paraît très dur, tu est génial :) !
Merci beaucoup Vincent de me suivre :-) n'hésites pas à t'abonner et à partager à tes amis ;-)
merci beaucoup Lior , Super série ! Vous êtes vraiment super pédagogue , merci encore autre fois.
Merci pour tes vidéos, tout est vraiment bien expliqué et ça rends l'apprentissage de Symfony beaucoup plus simple. Grâce à toi je progresse énormément :)
Merci à toi :-) n'oublies pas que j'ai une formation de 20h sur Udemy à ce sujet (lien dans la description) et par ailleurs n'hésites pas à t'abonner et à partager, ça aidera la chaîne :)
tout simplement , vous êtes le meilleur!!!!!
Non c'est toi le meilleur :p
Au top Lior ! J'apprends mieux grâce à toi, c'est super bien expliqué ! Merci.
Merci beaucoup ! :)
J'adore vos cours car les explications sont claires ..
Mory SANO et ben merci beaucoup pour commentaire ! C'est mon plaisir de voir que ça aide les gens 😁
Excellents tutos ! J'apprends mieux grâce à toi & en plus c'est super bien expliqué ! Merci :D
J'ai cependant un petit soucis. J'ai choisis de partir sur la relation ManyToMany, ce qui a créé une table (category_article) en BDD qui joint les ids des Articles & Categories; suite à ce choix, lorsque je souhaite éditer/créer un article j'ai le message suivant :
"Could not determine access type for property "categories" in class "App\Entity\Article": The property "categories" in class "App\Entity\Article" can be defined with the methods "addCategory()", "removeCategory()" but the new value must be an array or an instance of \Traversable, "App\Entity\Category" given.. "
Je me doute qu'il faut faire une modif dans ArticleController au niveau de la fonction form(), pour update la table en question mais je n'arrive pas à trouver comment faire. J'ai tenté de regarder la doc de Symfony, mais j'ai du mal à la comprendre :/
Aurais-tu une piste à me proposer ?
Merci par avance !
Désolé de répondre si tard, mais je pense qu'il te suffit de rajouter l'option "multiple" => true dans la configuration de ton EntityType des catégories pour ne plus avoir UNE CATEGORIE mais UN TABLEAU DE CATEGORIES :)
Des tutos très bien expliqués, merci beaucoup !!
Merci beaucoup :-)
Merci beaucoup pour cette série de vidéo !! il n'y a pas plus clair pour les débutant en framework
Je voulais aussi savoir quelles extensions vsocde tu utilises, parce qu'avoir accès aux extensions HTML dans un fichier twig me ferait gagne bcp de tps
Surtout continue comme ça !
Twig Language 2 et surtout bien configuré Emmet (vas voir ma dernière vidéo de 2h, à un moment j'en parle vers le début)
Vidéo de très bonne qualité ! Bonne pédagogie et transmission des bonnes pratiques ! Continue comme ça 😊
Merci beaucoup Dorian :-)
Obligé de faire un commentaire. C'est mon troisième tuto symfony et c'est le seul où j'ai réussi à vraiment avancer. Merci Lior !!!
Mais de rien :)
Merci vous avez une suberbe manière d'expliquer.
Merci beaucoup :)
Super vidéo, je découvre Faker que j'utiliserai peut-être très vite. Mon projet prend une forme pro. Je vais pouvoir travailler plus facilement en équipe dans un futur proche. Un grand merci :D
De rien !
Je vous remercie beaucoup car j'ai pu résoudre mon problème.
Parfait !
merci pour ces tutos. T'es super pédagogue ! Continue !
Remy Robillard merci beaucoup
Génial tes explications !!!
Merci 😁
Bonjour Lior, j'aime beaucoup tes tutos, très clairs et faciles à suivre ! Il semble qu'il y ait un soucis avec le composant faker, la commande de composer me retourne le message suivant : "Package fzaninotto/faker is abandoned, you should avoid using it. No replacement was suggested". Un alternative a proposer ?
Oui y a une alternative désormais c'est fakerphp/faker :)
Non lorsque tu tape ta commande avec composer require:fzaninotto/faker laisse ca jusqu'à la fin ne touche rien ce message sort toujours mais ne cause aucun problème ca m'est arrivé aussi plusieurs fois mais je travaille tranquillement. FML
TOP , merci bcp ca m'as beaucoup idée
Tant mieux ! Merci beaucoup :)
Bonjour si il y a des gens qui n'arrive pas à faire doctrine:migrations:migrate ,
-supprimer toutes les migrations du dossier /migrations après avoir enlever les fixtures sur phpMyAdmin et refaite :
php bin/console make:migration
-puis refaite :
php bin/console doctrine:migrations:migrate
Merci :)
Les......les fixtures, tu m'as tué à 22:23, vraiment coup de chapeau
:D
Toi t'es un bon !!! "tout autre superlatif serait superflue"
:D :D
merci lior pour cette confiance de travail
C'est très intéressant merci, ça aurait été bien également de voir comment générer puis modifier des entités et repos à partir de bases et contraintes existantes.
Pourquoi pas dans le futur :)
22:23 «Qu'est-ce qu'on avait étudié ensemble lors du premier cours ? Les ? Les ???» MDR Monsieur le professeur ! Je n'ai pas pu m'empêcher de lever le doigt en donnant la réponse ! - Merci encore. Je n'ai jamais suivi des tutos aussi facilement sans perdre mon temps à rechercher où cela bug au détriment du suivi du cours. (C'est nécessaire de savoir débuguer, mais c'est plus encourageant si on arrive tout de suite à un résultat. On a toujours le temps de "s'amuser" à débuguer dans d'autres circonstances…
Merci beaucoup :)
Bonjour, a 14min tu enleve toutes les données de la base de données en utilsant php my admin, comment je peux le faire via la console ?
T'es top tout simplement.
Merci beaucoup :)
Merci beaucoup.
Avec plaisir
Bonjour Lior ceci ne marche pas: $content = '' . join($faker->paragraphs(6), '') . '';
Quand tu va dans le terminal tu tape php bin/console doctrine:fixtures:load ca affiche Notice: Array to string conversion. en plus dans VSCODE ca souligne ca:'') en rouge. qu'est faire s'il vous plait ?
Lire l'erreur, faire une recherche éventuellement et la corriger ? :p
best tuto best teatcher tnx from morocco
Merci !
Merci Bcp,Vraiment.vous Etes pro and Expert
Merci pour les vidéos. J'ai mieux saisi en 4h avec toi Symfony qu'avec mon prof en 2 semaines...
Bah c'est qui ton prof ? Et au fait : tu comprends mieux avec moi parce que c'est la deuxième fois que tu le vois, et que ton prof a déjà passé la première couche :)
@@LiorCHAMLA Haha, je balancerais pas :) Mais c'est vrai que la 2nde réécoute aide toujours. Je dois aussi maintenant parcourir les méandes pour comprendre les Event Listener pour voir si des fonctions peuvent être appelées car là, même tes vidéos ou les docs ne m'aident plus :) Merci en tout cas pour ces vidéos
@@olivierb1240 tiens tiens tiens, je sors dans quelques jours une formation complète sur le système d'événements de symfony sur ma plateforme 😁
@@LiorCHAMLA haha, bon je crois que tu as déjà trouvé un client :)
Génial ta formation !
Merci beaucoup :)
Exellente vidéo, un grand merci à toi !
Merci à toi d'avoir visionné :-)
super video. Merci beaucoup. une petite question: apres qu'on a vider la base de donne mes articles commencent avec l'id 16 .
l'autoincrementation de l'id ne se remet pas a un.
Oui c'est normal l'autoincrément garde la dernière valeur en mémoire, si tu veux le remettre à zéro cherche "mysql reset auto increment"
Merci pour ta vidéo qui démontre la puissance de symfony BOUMMMMMMMMMM
Merci à toi :)
Merci infiniment pour vos cours ça nous sauve la vie, pourrait-vous nous donné quelques notions concernant les entités de type relation intermédiaire; par exemple (une entité devis, une entité produit , et une entité devisproduit dans le but de choisir une quantité précise du produit pour chaque devis)?
Katia Toubal pas dans ces vidéos UA-cam malheureusement mais dans la future formation payante. Restez branchés sur la chaîne j'offrirai des réductions dans une future vidéo
D'accord, merci beaucoup je reste connectée
Hello! Tout d'abord merci pour ces vidéos gratuites très bien faites et très abordables! Petite question, à 14' env, vous parlez de migration suite à l'ajout d'une entité + relation avec une autre entité. Cette relation nécessite que Article possède une propriété catégorie non nulle. Lors de la migration (solution 1 ou 2) cela écrase/supprime les anciens articles . N'y a t il pas moyen de conserver les anciens articles même s'ils n'ont pas de catégorie? Autrement qu'en ouvrant la bdd et en ajoutant manuellement une catégorie à chacun avant la migration ?
Et non ! Pour des cas très spécifiques comme cela, tu devras modifier ta migration afin de prendre soin des tables qui posent des soucis particuliers :)
Bonsoir j'ai cette erreur lors de la migration :
Argument #1 ($createdAt) must be of type DateTimeImmutable, DateTime given
J'ai également une erreur si je change le paramètre de setCreatedAt() dans la classe Comment
merci pouvez vous faire des tuto sur les api en général sur symfony
Vous venez de sauver mon projet ! Mercé
Bravo magnifique ..sltp un tuto sur les formulaires imbriqués ..comment envoyer les requetes DQL avec la selection
Un jour peut-être pourquoi pas :-)
Bonjour encore merci. Pourrais tu faire une vidéo upload image et sur les API SF4
Peut-être un jour, je ne te promet rien là dessus :x
+1 ;)
Trodix89 on verra on verra haha
Salut,
superbe vidéo, ça fait réviser l'épisode 1 et apprendre les relations / faker :)
Petite question, aurais-tu un lien de la doc twig pour ce qui est de l'ordre d'affichage ? Actuellement on affiche les articles / commentaires avec des boucles for.
Je m'explique, les articles / commentaires ne sont pas affichés (triés) par date croissante / décroissante mais par ID.
Avec la fixture, ça casse un peu la réalité. Après on sait très bien qu'une fois le site en ligne cela ne posera pas forcément de soucis.
Voilà c'était juste pour savoir s'il existait cette possibilité de tri par date !
Merci beaucoup pour l'investissement dans tes vidéos
Bah tu as la documentation officielle de Twig avec notamment un filtre qui s'appelle "sort" mais je ne pense pas qu'il nous aide dans le cas que tu décris. Dans le cas que tu décris il faudrait plutôt une requête DQL (l'équivalent de SQL avec Doctrine) qui classe les commentaires dans l'ordre de date de création par exemple.
j'adore ta façon de faire
Si seulement j’avais eu un prof comme toi lors de ma reconversion. 👍💪
Bah si tu as bien compris cette vidéo c'est que t'as pas du avoir de si mauvais profs que ça :D
salue, tu fait de super tuto j'apprécie beaucoup
Merci beaucoup, n'hésites pas à t'abonner et à partager :)
c'est top, malheuresement fzaninotto/Faker a fermé ses portes
Tu peux remplacer par github.com/FakerPHP/Faker
J'attend avec impatience ta formation de API REST avec symfony et react js
C'est fait depuis juin :)
Présentation ici : ua-cam.com/video/AgFWVnBwyJc/v-deo.html
Et un lien de réduction dans la description : learn.web-develop.me/developpement-moderne-avec-apiplatform-symfony-et-react?coupon=REDUC55
Merci énormément pour vos Tutos !! du Maroc :D
De rien merci à toi :)
Gros merci pour tes cours!
De rien merci à toi d'avoir suivi ;-)
Je continue sur Udemy ;) @@LiorCHAMLA
@@voyagealarrachevoyagealarr8374 Merci pour ta confiance, n'hésites pas à me dire où tu en es au fur et à mesure sur la plateforme dans la partie Q&A
Salut, c'est quoi la difference entre doctrine:migrations:migrate et doctrine:schema:update ?
migrations:migrate va vider la base de données et jouer les migrations qui existent ;
schema:update va s'en foutre des migrations qui existent et va tout de suite faire correspondre ta base de données et tes entités.
DONC : si tu as une entité que tu as fait évoluer, mais que tu ne créé pas la migration qui contient cette évolution, en faisant un migrations:migrate, tu vas pas voir cette évolution dans la base de données alors qu'en faisant un schema:update, tu vas les voir :)
lah ijazik bikhir (y)
Pour aller plus loin, j'ai créé une table author reliee en OneToMany à la table article (1 auteur peut ecrire plusieurs articles, 1 article n'a qu'1 seul auteur) et j'aimerais evidemment afficher un champs dans le formulaire d'edition. Je veux que ce soit un input texte prérempli avec l'auteur actuel mais je n'y arrive pas.
Dans ArticleType, j'ai ajouté à $builder ceci :
->add('auteur',TextType::class,[
'data' => Author::class,
'label' => 'name'
])
Je précise :
Ma table d'auteurs contient plusieurs auteurs
'auteur' bien le nom de ma classe dans l'entité Author.php, et contient la propriété 'name'
Voilà voilà, dur dur appentissage :)
Stéphane Joos non tu ne peux pas faire ça. Ton auteur c'est une entité donc tu ne peux pas le réduire à un champ texte. C'est forcément un champ Entity. A la limite tu ferais dans ton formulaire un champ author_name qui serait du type text, puis 2 choses à faire :
Lors de l'affichage le remplir avec le nom de l'auteur de l'article (si c'est un article qui existe et qui a donc un auteur)
Lors de la sauvegarde analyser le champ, chercher l'entité author qui correspond à ce name grâce à repository des auteurs puis indiquer à l'article qu'il appartient à cet auteur.
Mais ça me semble un peu poussif surtout que je pourrai très bien écrire le nom d'un auteur qui n'existe pas et l'article se retrouverait sans auteur 😕
En tout cas je vois que ça bosse dur 😁
Allez Hop, c'est cadeau
Une petite fonction à ajouter dans ArticleRepository.php pour trier les articles par date de création décroissante
public function getArticlesSortedByDescDate()
{
$qb = $this->createQueryBuilder('t')
->orderBy('t.createdAt', 'DESC');
return $qb->getQuery()->getResult();
}
evidemment il faut remplacer findAll par getArticlesSortedByDescDate(); dans l'index de BlogController
Cool ça 👍
Par contre c'est plus ardu pour le tri des commentaires
Bonjour et Merci pour toutes ces vidéos de qualités!
J'aurai une question sur les bonnes pratiques dans Symfony : vaut il mieux utiliser les anotations, qui à mon sens vont surcharger le code ou un fichier yml?
Merci d'avance pour votre réponse et encore bravo pour votre sens pédagogique et la clarté de vos exposés.
Iles Kourylles moi je dirai que ça dépend du projet et de ton état d'esprit. Une appli avec un ou deux controllers qui ont 2 ou 3 routes chacun les annotations sont ok.
Mais je privilégierai peut être le fichier yaml si j'ai beaucoup de routes à décrire. Ça me permet de voir l'ensemble de mes routes en un seul coup d'œil sur un seul fichier.
Après t'as des mecs qui sont ok d'avoir 30 controllers avec les annotations et t'as des mecs qui même pour un seul controller préfèrent le fichier yaml
Merci pour cette réponse rapide.
A la normande, mais je m'en doutais un peu ! Ce qui me rassure c'est qu'il n'y a pas de méthode meilleure qu'une autre.
je développe sur mes loisirs une appli web de gestion d'une association et je m'essaie à l'utilisation d'un framwork. La doc SYMFONY est bien faite mais ce sont sont surtout tes tutoriels qui précisent parfaitement les points essentiels du framework qui me permettent d'avancer rapidement.
je vais donc rester avec mes travers psycho-rigide et garder toutes mes paramètres au même endroit dans les fichiers yaml, cela me parait plus propre.
Merci encore et au plaisir de te lire
Lionel
Au plaisir 😀
Merci :)
juste genial l'ami !
Merci beaucoup ♥️
J'adore vraiment excellent :) !
C'est mon plaisir ;-)
@@LiorCHAMLA Merci ! :D
Bonjour Lior ! et Merci beaucoup pour tes tutos, j'étais sur Laravel, j'avais peur de me lancer sur symfony et franchement la ..c'est le TOP !!! :)
Petite question, c'est moi ou on pas vu la partie "Delete Article" ou "Delete Commentaire"
Tu pourrais faire un petit com, pour expliquer comment on peut mettre ca en place ?
/**
* @Route("/article/{id}/delete", name="article_delete")
*/
public function delete(Article $article, ObjectManager $manager) {
$manager->remove($article);
$manager->flush();
return $this->redirectToRoute('une_route');
}
@@LiorCHAMLA merci !!! 👍👍👍👍👍😍
Bonsoir Lior, merci pour pourquoi: I Cannot autowire argument $manager of "App\Controller\BlogController::form()": it references interface "Doctrine\Common\Persistence\ObjectManager" but no such service exists. Did you create a class that implements this interface? Pourtant, quand je cree des objets fixtures, il marche.
Salut Thanh, dans Symfony 5 on n'utilise pas le ObjectManager dans les controllers mais le EntityManagerInterface :)
@@LiorCHAMLA Ah oui, merci! En effet, je ne le trouve pas dans la list des autoriwing. Je vais regarder comment utiliser EntityMangagerInterface. Bonne fin semaine. Bien coridialement
merci pour cette video c'est top! j'ai une question : dans ArticleFixtures.php, les boucles sont imbriquées ca ok, mais le cheminement j'ai du mal à voir .. merci
Dans la première boucle, je créé une catégorie (mais comme c'est une boucle, ça va se faire plusieurs fois), et pour chaque catégorie que je créé, je fais une autre boucle où je créé des articles qui seront liés à cette catégorie.
Donc ça donne :
BOUCLE 1 : Je créé une catégorie et une boucle qui crééra des articles de cette catégorie
BOUCLE 2 : Je créé une catégorie et une boucle qui crééra des articles de cette catégorie
BOUCLE 3 : Je créé une catégorie et une boucle qui crééra des articles de cette catégorie
etc etc
Bonjour Chamla pourrais tu faire une vidéo sur le symfony/mercure-bundle stp
Grafikart l'a déjà fait :)
t'as du talent mec trop
Voilà qui est sympa :-) merci
salut frero,j'aime bien tes tutos...mais j'ai eu une erreur quand je veux migrer la table Category et Commant dans la base de donnees je ne trouve pas auccune solution sur le net..on me dit que la table article existe deja mais c ne apparaitre pas dans la base de donnees MYSQL.....
Et si tu supprimes toutes tes tables dans la base de données et que tu relances la migration ?
Bonjour et tous d'abord merci pour vos cours qui sont vraiment au top pour bien comprendre symfony.
J'écris pour vous demander un conseil sur l'élaboration d'une entity avec une relation oneToOne :
j'ai 2 tables, AA qui est en relation avec la table BB en oneToOne.
J'aimerais pourvoir créer une seconde relation entre les 2 pour un autre champs :
AA.gg => BB.id (champ BB.xx='PA')
AA.kk => BB.id (champ BB.xx='PR').
En gros ma table BB doit avoir plusieurs type de données en relation avec plusieurs champs de AA relié par un champ xx.
Merci par avance pour vos conseils et votre aide.
Cordialement
worg
Alors comme je comprend pas trop ce que tu recherches et ce que tu veux dire donc je peux pas trop aider mais voici la documentation de doctrine sur les relations www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/association-mapping.html et sinon je pense que peut-être d'autres personnes ont peut-être traité le sujet.
Et aussi, je pense que le mieux ce soit de faire des expérimentations.
Bon j'ai trouvé une solution en utilisant du oneToMany mais bon ce n'est pas très propre...
Pour mieux comprendre, j'ai une table achat et une table budget.
Dans le principe pas de pb oneToOne achat.budget -> budget.id.
Mais là je voulais créé 2 entrée vers budget :
achat.budget (prévus) -> budget.id et budget.type (prévus)
et achat.budget (payé) -> budget.id et budget.type (payé)
Donc en gros 2 entrée dans achat mais qui renvois vers 2 lignes budget .
J'ai donc trouvé 2 solutions, 1 seul ligne budget et 2 champs (payé et prévus).
Ou 2 lignes budgets avec du oneToMany.
Je voulais voir si il existait un moyen plus propres comme les attributs en manyToMany (Relation Many-To-Many avec attributs)
Merci encore pour votre aide et vos super tuto...
Super vidéo ! Merci !
Merci a toi d'avoir regardé mes formations 😃
Bonjour Lior,
j'ai ce message qui s'affiche quand je veux créer un nouveau article
SQLSTATE[23000]: Integrity constraint violation: 1048 Le champ 'category_id' ne peut être vide (null)
une idée ?
Bah c'est écrit : tu essaies d'ajouter un article dans la base de données sans lui dire à quelle catégorie il appartient, c'est littéralement écrit :D
@@LiorCHAMLA Yepp merci Lior ❤
Pourrais-tu nous faire une formation sur Symfony 4 plus pousser sur Udemy
vous etes le meuilleur
Merci beaucoup :)
Hello, je n'ai pas encore vue la vidéo 4/4 mais je te vois énormément utiliser les annotations, en cours on a vue xml et yml. Pourrais tu faire une vidéo sur les annotations du coup afin de (que je ^^)
vraiment bien comprendre tes vidéos géniales (je veux vraiment essayer de tout comprendre) (autre questions, on travail avec "schema:update" quand toi tu utilises "make:migration" , qu'elle est la différence ? ) et comme d'habitude UN GRAND merci !!
jerome moulin en gros les annotations sont un autre moyen de décrire des configuration. Y a pas grand chose à expliquer si ce n'est que ça s'utilise avec un arobase au début du nom de l'annotation. Les annotations en elles mêmes tu les découvre dans la documentation de Symfony en fonction du sujet que tu abordes.
Ensuite je ne connais pas la commande schéma update. Je regarderai en rentrant de vacances quelles sont les différences 😊
I love you men!!! Thank you
Great Regards & Big Up
Excellent tuto merci pour ce partage.
Attention, Faker utilise lorempixel.com pour la génération d'image et qui ne fonctionne plus.
Merci beaucoup :)
très bon formation
Merci !
Superbe vidéo, tout fonctionne pour moi :D
Par contre c'est normal que les images changent à chaque fois que je réactualise?
Merci ^^ dans la bdd l'id de l'image bouge pas pourtant ... xD
Non c'est le service en ligne qui ne donne jamais la même image :-)
@@LiorCHAMLA oui j'ai remarqué juste après dans ta vidéo ! Je viens tout juste de finir pour les commentaires ! Merci beaucoup !
Bonjour j'ai un problème avec mon projet symfony. J'ai écrit la commande php bin/console make:entity User. L'entité User.php à été créée mais ne me donne pas la main d'ajouter d'autre propriété c'est à dire les attribut
Si tu relances la même commande normalement il te permet d'enrichir l'entité, tu peux aussi tout à fait enrichir à la main :)
Bonjour Lior merci pour votre Tutos mais moi jai un petit souci ci vous pouvez m'aider avec:
j'ai 3 entity, commande, commandeItems, et category avec de la relation quand j'esaye de stocker l'objet commande dans la session jai cette erreur (Entity of type "App\Entity\Category" passed to the choice field must be managed. Maybe you forget to persist it in the entity manager?
) comme jutilise la category dans commandeitem comme liste deroulante. Merci d'avance !
Est-ce que tu peux me montrer le code dans ta classe de formulaire ? Je pense que tu as mis une option qui ne passe pas dans le champ ChoiceType :)
@@LiorCHAMLA bonjour
sa c'est pour Invoice:
namespace App\Form;
use App\Entity\Invoice;
use App\Form\InvoiceItemType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\CollectionType;
class InvoiceType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('taxable')
->add('date')
->add('invoiceItems', CollectionType::class,
[
'entry_type'=>InvoiceItemType::class,
'entry_options' => ['label' => false]
] )
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => Invoice::class,
]);
}
}
sa c'est pour InvoiceItem:
namespace App\Form;
use App\Entity\Category;
use App\Entity\InvoiceItem;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\OptionsResolver\OptionsResolver;
class InvoiceItemType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('weight')
->add('price')
->add('design', EntityType::class,
[
'class'=>Category::class, 'choice_label'=>'name', 'placeholder'=>'choose a design'
])
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => InvoiceItem::class,
]);
}
}
merci d'avance
@@LiorCHAMLA et quand jai ajouté cascad{persist} il enregistre à nouveau la categorie alors que jai deja des category dans la base de donne je n'ais juste qu'a attribuer les invoiceItem la categorie souhaité.
Hello Lior, j'ai un petit problème lorsque j'essaye d'executer les fixtures j'ai l'erreur suivante :
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes) in [CHEMIN] Base.php on line 195
+
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 32768 bytes) in [CHEMIN] OutOfMemoryException.php on line 1
Comment y remédier ? Merci d'avance !
En théorie il faudrait augmenter ta limite de taille mémoire pour php (ça se fait dans la configuration) mais c'est étonnant que tu l'aies déjà atteinte. Tu n'aurais pas une boucle infinie dans ta fixture ?
@@LiorCHAMLA bonjour j'ai le meme probleme j'ai modifié le fichier php.ini en modifiant la ligne memory_limit=128M par memory_limit=1024M
mais toujours le meme probleme besoin d'aide
@@rafiksellah4724 Boucle infinie ! Dans ta fixture !
Merci lior pour tes formations j’apprends énormément et en tant que débutant je me débrouille bien grâce à toi.
J’ai une question, je voudrais que quand on arrive sur la page catégorie séparer les catégories, je sais que sais possible, mais je ne sais pas comment faire. J’ai bien cherché sur le web et aussi sur le doc de symfony mais je n’ai pas trouvé de réponse.
Peux-tu m’expliqué comment faire ou me donné un lien avec une explication pour moi avancé sur mon projet.
Merci
Bah tu créées une fonction avec la route "/categories" et tu demande au Repository de te filer toutes les catégories, et dans ton twig tu boucle sur chaque catégorie et après tu fais ce que tu veux avec :-)
@@LiorCHAMLA oui c'est ce que j'ai fait mais j'ai une erreur, j'ai fait une relation avec les deux tables et j'ai une erreur qui ma dit ..... articles VS article.....
et je ne sais pas ce que cela veut dire et je ne comprend pas pour quoi?
@@pimprenelle.erquelinnes6117 Je ne sais pas te répondre si je ne vois pas le code etc. Il faut simplement que tu comprennes comment marche une relation et que tu fasses ensuite ce que tu as envie de faire, peut-être essaye de reprendre à 0 avec deux nouvelles entités.
Bonjour Lior, Je patauge un peu au niveau des relations entre tables. J'ai une entity product liée à une entity category. Dans ma table category j'ai dejà 2 catégories présentes. Dans mon entity product, j'ai bien une méthode setProductCategory . Je pensais simplement qu'en passant en paramètre de cette méthode le chiffre 2, cela lierai mon produit à la categorie dont l'id est 2. Mais cela me renvoie une erreur.
setProductCategory() must be an instance of App\Entity\Category or nul
l, integer given
dans mon entity cela donne ca :
public function setProductCategory(?Category $productCategory): self
{
$this->productCategory = $productCategory;
return $this;
}
Merci
Oui ce que tu dois passer ce n'est pas l'ID de la catégorie mais bel et bien l'objet qui représente la catégorie numéro 2.