IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Form Builder et migration [4.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    495
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 495
    Par défaut Form Builder et migration
    Bonjour,

    Je cherche à réaliser un "Form Builder" avec Symfony 4.1 et Doctrine.
    L'utilisateur peut créer son formulaire au moyen d'une interface graphique, nommer ses champs, les réorganiser.. Tout cela fonctionne bien.
    Je génére un fichier d'Entity à base d'un template Twig et j'utilise des exec php pour la suite...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    			$php = $this->renderView('doNotTouch/Entity.php.html', array(
    				'entity' => $entity,
    			));
     
    			file_put_contents(__DIR__ . '/../Entity/' . $entity['className'] .'.php', $php);
    			exec('php /home/vinceweb/sites/monsite/bin/console make:entity --regenerate App -q -n');
    			exec('php /home/vinceweb/sites/monsite/bin/console doctrine:migrations:diff', $out);

    Le premier "Exec" fonctionne bien. L'entité est bien écrite et les getters / setters sont générés aussi.

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    <?php
     
    namespace App\Entity;
    use Doctrine\ORM\Mapping as ORM;
     
    /**
     * @ORM\Entity(repositoryClass="App\Repository\TestRepository")
     */
    class Test
    {
        /**
         * @ORM\Id()
         * @ORM\GeneratedValue()
         * @ORM\Column(type="integer")
         */
        private $id;
     
    	/**
         * @ORM\Column(type="string")
         */
        private $select;
    	/**
         * @ORM\Column(type="string")
         */
        private $text_field;
    	/**
         * @ORM\Column(type="string")
         */
        private $text_area;
    	/**
         * @ORM\Column(type="string")
         */
        private $radio_group;
     
        public function getId(): ?int
        {
            return $this->id;
        }
     
        public function getSelect(): ?string
        {
            return $this->select;
        }
     
        public function setSelect(string $select): self
        {
            $this->select = $select;
     
            return $this;
        }
     
        public function getTextField(): ?string
        {
            return $this->text_field;
        }
     
        public function setTextField(string $text_field): self
        {
            $this->text_field = $text_field;
     
            return $this;
        }
     
        public function getTextArea(): ?string
        {
            return $this->text_area;
        }
     
        public function setTextArea(string $text_area): self
        {
            $this->text_area = $text_area;
     
            return $this;
        }
     
        public function getRadioGroup(): ?string
        {
            return $this->radio_group;
        }
     
        public function setRadioGroup(string $radio_group): self
        {
            $this->radio_group = $radio_group;
     
            return $this;
        }
    	}
    MAIS le 2e ("doctrine:migrations:diff" ou "make:migration") ne renvoie rien depuis mon code... ?

    Par contre, si j'appelle la commande directement dans la console, j'ai un résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    php bin/console  doctrine:migrations:diff
    Generated new migration class to "/home/vinceweb/sites/monsite/src/Migrations/Version20180809150601.php" from schema differences.
    Auriez vous une idée de pourquoi la migration n'est pas générée depuis mon code php ? La j'avoue que je viens de bloquer dessus un bon moment.

    Aucune erreur dans le log apache, aucune exception dans Symfony...

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    495
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 495
    Par défaut
    Bon, j'ai fini par trouver.. Poster des messages ici me permet de tout mettre à plat, on dirait !
    Simple souci de droit sur le dossier Migrations.. www-data n'avait pas les droits pour écrire dans ce dossier, mais aucune erreur ne remontait !
    Enfin, c'est réglé pour cette partie et la migration est bien exécutée et la DB créé.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Forms Builder] Gif animé dans un module
    Par Diane L'Hérault dans le forum Forms
    Réponses: 15
    Dernier message: 07/08/2009, 17h14
  2. enregistré une image dans forms builder
    Par sofian001 dans le forum Forms
    Réponses: 4
    Dernier message: 28/06/2006, 10h18
  3. [Forms]forms builder
    Par jmoez dans le forum Forms
    Réponses: 2
    Dernier message: 26/04/2006, 12h19
  4. FORMS BUILDER
    Par todier dans le forum Forms
    Réponses: 1
    Dernier message: 03/04/2006, 18h27
  5. Réponses: 8
    Dernier message: 12/01/2005, 07h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo