Bonjour,
J'ai un souci sur une table dans ma bdd, ou plutôt lorsque je persist et que je flush :
ma table ne va pas plus loin que 1001 lignes (le champ ID) lorsque j'utilise doctrine pour en modifier les données, alors que via phpmyadmin, je peux ajouter d'autres entrées et largement dépasser les 1000 lignes.. Je suppose donc que cela ne vient pas de ma config mysql (mon champ ID est un int(15) unsigned, donc capable de dépasser les 1000 lignes), mais bien de doctrine ou symfony qui limite la taille du json, je ne sais pas.. Lorsque j'ajoute d'autres lignes à la main via phpmyadmin, les modifs s'affichent bien sur mon application : l'application semble capable de récupérer plus de 1000 lignes et de les afficher, mais pas d'envoyer une telle unité à la bdd (dès que j'enregistre, les lignes supplémentaires disparaissent).
Voici le code lorsque je persist et flush :
Et voici le code de mon controller pour cette action :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 public function clearData() { $connection = $this->_em->getConnection(); $platform = $connection->getDatabasePlatform(); $connection->executeUpdate($platform->getTruncateTableSQL('laisonLink', false)); } public function addLinks($data) { foreach($data as $link) { // Création du lien $lien = new LaisonLink(); // On crée le lien $lien->setLinkParent($link['parent']); $lien->setLinkEnfant($link['enfant']); $lien->setTime(new \DateTime()); $this->_em->persist($lien); // On le persiste } $this->_em->flush(); }
Merci pour votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 public function linkLinksAction() { // Page permettant de relier les liens entre eux $request = $this->get('request'); $formsRepository = $this->getDoctrine()->getEntityManager()->getRepository('appGlobalBundle:Link'); $linksRepository = $this->getDoctrine()->getEntityManager()->getRepository('appGlobalBundle:LaisonLink'); $links = $formsRepository->getVisible(); $linksBis = $linkssRepository->getVisible(); $existantes = $linksRepository->getData(); if( $request->getMethod() == 'POST' ) { // On a reçu les nouvelles informations de liaison des liens, on les enregistre dans la base $toRemove = array(); $toAdd = array(); $linksRepository->clearData(); foreach($links as $parent) { foreach($linksBis as $enfant) { if ($request->request->get('lien'.$parent->getId().'_'.$enfant->getId()) == 'on') { // On ajoute un enregistrement $toAdd[] = array('parent' => $parent, 'enfant' => $enfant); } } } $linksRepository->addLinks($toAdd); return new Response(json_encode(array('text' => 'Les liaisons ont bien été mises à jour.', 'layout' => 'bottomLeft', 'type' => 'success'))); } else { // On affiche le tableau de liaison, prérempli avec les informations existantes return $this->render('appliGlobalBundle:Admin:linksLinks.html.twig', array('forms' => $links, 'lnBis' => $linksBis, 'liens' => $existantes)); } }
Partager