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

Plugins PHP Discussion :

ahDoctrineEasyEmbeddedRelationsPlugin : Ajout BDD (I18N)


Sujet :

Plugins PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 10
    Par défaut ahDoctrineEasyEmbeddedRelationsPlugin : Ajout BDD (I18N)
    Bonjour,

    J'ai un petit soucis avec le plugin ahDoctrineEasyEmbeddedRelationsPlugin.

    En effet, je n'arrive pas à enregistrer le form que je passe dans l'embedRelation...

    Précision : Le form contient bien l'ensemble de mes champs. Je remplie le tout et valide. Je regarde ensuite dans ma BDD : les champs de la table peanut_actu (+translation) sont présents mais pas ceux de la table peanut_actu_page (+translation).

    Voici mon schéma (je précise que je suis en i18n) :
    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
     
    peanutActu:
      actAs:
        Timestampable: ~
        Seoable:       ~
        I18n:
          fields:      [title]
          actAs:
            Sluggable: { fields: [title], uniqueBy: [lang, title] }  
      columns:
        id:
          primary: true
          type: integer
          autoincrement: true  
        title:
          type: string(255)
        author:
          type: integer
          notnull: true
        status:
          type: enum
          values: [draft, publish]
          default: draft
     
    peanutActuPage:
      actAs:
        I18n:
          fields:      [title]
          actAs:
            Sluggable: { fields: [title], uniqueBy: [lang, title] }  
      columns:
        id:
          primary: true
          type: integer
          autoincrement: true
        title:
          type: string(255)
        actu_id:
          type: integer
      relations:
        peanutActu:
          class: peanutActu
          foreignAlias: peanutActuPage
          onDelete: cascade
          local: actu_id
          foreign: id
    On a ici une relation de type manyToOne (une actu peut contenir plusieurs page).

    Voici mon peanutActuForm.class.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
     
    class peanutActuForm extends BasepeanutActuForm
    {
      public function configure()
      {
        parent::configure();
        $user = self::getValidUser();
     
        $this->useFields(array(
          'status',
          'created_at'
        ));
     
        if(!$this->isNew()) {
          $this->widgetSchema['created_at'] = new sfWidgetFormI18nDate(array(
            'culture' => $user->getCulture(),
          ));
        }
        else{
          unset($this['created_at']);
        }
     
        $this->widgetSchema->setHelps(array(
          'status'        => 'If you want to hide this entry for visitors',
          'created_at'    => 'Useful is you want to modify the date of the entry publication'
        ));
     
        $this->embedI18n(array('fr', 'en'));
        $this->widgetSchema->setLabel('fr', 'Français');
        $this->widgetSchema->setLabel('en', 'English');
     
        //$this->embedRelation('peanutSeo');
        //$this->widgetSchema['peanutSeo']->setLabel('SEO');   
     
        $this->embedRelations(array(
          'peanutActuPage' => array(
            'considerNewFormEmptyFields' => array('title'),
            'formFormatter'                 => null,
            'multipleNewForms'              => true,
            'newFormsInitialCount'          => 2,
            'newFormsContainerForm'         => null,
            'newRelationButtonLabel'        => '+',
            'newRelationAddByCloning'       => true,
            'newRelationUseJSFramework'     => 'jQuery',
        )
      ));
      }
    Voici mon peanutActuFormTranslation.class.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
     
    class peanutActuTranslationForm extends BasepeanutActuTranslationForm
    {
      public function configure()
      {
        parent::configure();
     
        $user = self::getValidUser();
     
        $this->useFields(array(
          'title',
          'slug'
        ));
     
        $this->widgetSchema['title'] = new sfWidgetFormHtml5InputText($options = array(), $attributes = array(
            'required'    => true,
            'placeholder' => 'My Name'
        ));
     
        $this->widgetSchema['slug'] = new sfWidgetFormHtml5InputText($options = array(), $attributes = array(
            'placeholder' => 'my-name'
        ));
     
        $this->widgetSchema->setHelps(array(
          'title'         => 'The actu title (required)',
          'slug'          => 'Not required but maybe usefull for your SEO',
        ));
      }
    }
    Voici mon peanutActuPageForm.class.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    class peanutActuPageForm extends BasepeanutActuPageForm
    {
      public function configure()
      {
        parent::configure();
        unset($this['id']);
     
        $this->widgetSchema->setFormFormatterName('div');
     
        $this->embedI18n(array('fr', 'en'));
        $this->widgetSchema->setLabel('fr', 'Français');
        $this->widgetSchema->setLabel('en', 'English');
    Voici mon peanutActuPageFormTranslation.class.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
     
    class peanutActuPageTranslationForm extends BasepeanutActuPageTranslationForm
    {
      public function setup()
      {
        parent::setup();
     
        $user = self::getValidUser();
     
        $this->useFields(array(
          'title',
          'slug'
        ));
     
        $this->widgetSchema['title'] = new sfWidgetFormHtml5InputText($options = array(), $attributes = array(
            'required'    => false,
            'placeholder' => 'My Title'
        ));
     
        $this->widgetSchema['slug'] = new sfWidgetFormHtml5InputText($options = array(), $attributes = array(
            'placeholder' => 'my-title'
        ));
     
        $this->widgetSchema->setHelps(array(
          'title'         => 'The item title (required)',
          'slug'          => 'Not required but maybe usefull for your SEO',
        ));
      }
    }

    Quelqu'un aurait-il une idée ou a eu le même problème ?

    Merci d'avance...

    << X9 >>

  2. #2
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 10
    Par défaut Procédure
    Le problème est résolu.

    J'ai cherché les éventuelles erreurs qui empêchaient l'enregistrement en BDD ...

    En faisant un doBind() ...

    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
     
    class peanutActuForm extends BasepeanutActuForm
    {
      public function configure()
      {
          [...]
      }
     
      public function doBind(array $values) 
      {
        echo "<pre>"; print_r($values); echo "</pre>";
        die();
        parent::doBind($values); 
      }
    }
    ... je me suis rendu compte d'une erreur dans le $this->embedRelations(array( ... )).

    X9

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 24/08/2011, 14h35
  2. Upload Flash et PHP --> Pb ajout BDD
    Par gerald@23juin.net dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 10/07/2009, 10h06
  3. ajouter le contenu d'un dossier ftp à une bdd
    Par lioudow dans le forum Requêtes
    Réponses: 2
    Dernier message: 16/11/2005, 19h46
  4. ajouter enreg ds bdd
    Par boucher_emilie dans le forum ASP
    Réponses: 3
    Dernier message: 28/07/2004, 15h26
  5. Problème d'ajout multiples dans un BDD Access
    Par arnaud_verlaine dans le forum Langage SQL
    Réponses: 3
    Dernier message: 31/05/2004, 13h34

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