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 :

pb creation entité et internationalisation


Sujet :

Symfony PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    378
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 378
    Points : 94
    Points
    94
    Par défaut pb creation entité et internationalisation
    Bonjour,
    Je souhaite créer des entités mais le contenu :
    - doit être internationalisé pour certains champs
    - j'utilise aussi fosuserbundle donc les tables doivent pouvoir être administrées
    - l'utilisateur lambda connecté peut créer et est propriétaire de certains enregs

    les tables
    category (id, name) // name doit être internationalisable
    article (id,name, created_at, updated_at, active, startingdate, endingdate, price) // name doit être internationalisable, que faut-il faire aussi pour attacher l'utilisateur fosuserbundle
    rubrique (id, name) // name doit être internationalisable

    il doit exister 2 autres tables car
    - un article peut être rattaché à plusieurs catégories (par d'internationalisation)
    - un utilisateur créé un article mais saisit le contenu des rubriques dans différentes langues
    ex : contentrubrique (id, langue_id, rubrique_id, content,active)
    et donc pour ce cas il faut peut être une table langue (id, langue)

    le format sera en yml pour doctrine
    Merci de votre aide

    category.php
    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
     
    <?php
    namespace MyApp\ProjetBundle\Entity;
    use Doctrine\ORM\Mapping as ORM;
    use Symfony\Component\Validator\Constraints as Assert;
     
    /**
     * @ORM\Entity
     */
    class Category 
    {
        /**
         * @ORM\GeneratedValue
         * @ORM\Id
         * @ORM\Column(type="integer")
         */
        private $id;
     
        /**
         * @ORM\Column(type="string",length="255")
         * @Assert\NotBlank()
         * @Assert\MinLength(3)
         */    
        private $name;
    }

    article.php
    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
     
    <?php
    namespace MyApp\ProjetBundle\Entity;
    use Doctrine\ORM\Mapping as ORM;
    use Symfony\Component\Validator\Constraints as Assert;
     
    /**
     * @ORM\Entity
     */
    class Article
    {
        /**
         * @ORM\GeneratedValue
         * @ORM\Id
         * @ORM\Column(type="integer")
         */
        private $id;
     
        /**
         * @ORM\Column(type="string",length="255")
         * @Assert\NotBlank()
         * @Assert\MinLength(3)
         */    
        private $name;
     
     
        /**
         * @ORM\Column(type="date")
         * @Assert\NotBlank()
         */    
        private $startingdate;
     
     
        /**
         * @ORM\Column(type="date")
         * @Assert\NotBlank()
         */    
        private $endingdate;
     
        /**
         * @ORM\Column(type="string",length="1")
         * @Assert\NotBlank()
         * @Assert\Choice(choices = {"1", "0"})
         */    
        private $active;
     
     /**
         * @var decimal $price
         *
         * @ORM\Column(name="price", type="decimal", length="7", scale="2")
         */
        private $price;
     
     
     
    /**
         * @Gedmo\Timestampable(on="create")
         * @ORM\Column(name="created_at", type="datetime")
         */
        private $createdAt;
     
    /**
         * @Gedmo\Timestampable(on="update")
         * @ORM\Column(name="updated_at", type="datetime")
         */
        private $updatedAt;
     
        /**
         * @ORM\ManyToMany(targetEntity="Category")
         * @Assert\NotBlank()
         */    
        private $category;
    }
    rubrique.php
    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
     
    <?php
    namespace MyApp\ProjetBundle\Entity;
    use Doctrine\ORM\Mapping as ORM;
    use Symfony\Component\Validator\Constraints as Assert;
     
    /**
     * @ORM\Entity
     */
    class Rubrique 
    {
        /**
         * @ORM\GeneratedValue
         * @ORM\Id
         * @ORM\Column(type="integer")
         */
        private $id;
     
        /**
         * @ORM\Column(type="string",length="255")
         * @Assert\NotBlank()
         * @Assert\MinLength(3)
         */    
        private $name;
    }
    langue.php
    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
     
    <?php
    namespace MyApp\ProjetBundle\Entity;
    use Doctrine\ORM\Mapping as ORM;
    use Symfony\Component\Validator\Constraints as Assert;
     
    /**
     * @ORM\Entity
     */
    class Langue
    {
        /**
         * @ORM\GeneratedValue
         * @ORM\Id
         * @ORM\Column(type="integer")
         */
        private $id;
     
        /**
         * @ORM\Column(type="string",length="255")
         * @Assert\NotBlank()
         * @Assert\MinLength(3)
         */    
        private $name;
    }

    contentrubrique.php
    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
     
    <?php
    namespace MyApp\ProjetBundle\Entity;
    use Doctrine\ORM\Mapping as ORM;
    use Symfony\Component\Validator\Constraints as Assert;
     
    /**
     * @ORM\Entity
     */
    class contentrubrique
    {
        /**
         * @ORM\GeneratedValue
         * @ORM\Id
         * @ORM\Column(type="integer")
         */
        private $id;
     
        /**
         * @ORM\Column(type="string",length="255")
         * @Assert\NotBlank()
         * @Assert\MinLength(3)
         */    
        private $name;
     
     
     
        /**
         * @ORM\Column(type="string",length="1")
         * @Assert\NotBlank()
         * @Assert\Choice(choices = {"1", "0"})
         */    
        private $active;
     
        /**
         * @ORM\Column(name="content", type="text", nullable="true")
         */
        private $content;
     
        /**
         * @ORM\ManyToOne(targetEntity="Langue")
         * @Assert\NotBlank()
         */    
        private $langue;
     
        /**
         * @ORM\ManyToOne(targetEntity="Rubrique")
         * @Assert\NotBlank()
         */    
        private $rubrique;
    je ne sais pas si les déclarations sont bonnes
    ex : * @ORM\ManyToOne(targetEntity="Rubrique") si il ne faut pas un ManyToMany

    et comment mettre en place la partie internationalisation de certains champs ainsi que le point sur le fosuser

    Merci de votre aide

  2. #2
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 725
    Points : 1 050
    Points
    1 050
    Par défaut
    Bonjour,

    Pour les traductions, As tu regardé du coté des extensions Doctrine?
    http://symfony.com/doc/2.0/cookbook/...xtensions.html
    https://github.com/l3pp4rd/DoctrineE...ranslatable.md

    Pour le lien entre ton user et des articles, ça me semble correspondre aux fonctions fournies par les ACL:
    http://symfony.com/doc/current/cookb...urity/acl.html

Discussions similaires

  1. probleme de creation de l'entité manager
    Par execrable dans le forum JPA
    Réponses: 1
    Dernier message: 29/04/2011, 19h06
  2. Utilisation d'une sequence sans creation d'entite
    Par longbeach dans le forum Hibernate
    Réponses: 1
    Dernier message: 12/05/2009, 17h40
  3. Creation de fiche dynamique
    Par Mouss26 dans le forum C++Builder
    Réponses: 7
    Dernier message: 24/07/2002, 07h56
  4. [CR] internationalisation d'un report
    Par osoudee dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 24/06/2002, 16h54
  5. Creation d une clee dans la registry en VC++
    Par rico27fr dans le forum MFC
    Réponses: 4
    Dernier message: 30/05/2002, 12h36

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