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

ORM PHP Discussion :

Enregistrement de formulaire international


Sujet :

ORM PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 69
    Par défaut Enregistrement de formulaire international
    Bonjour,

    voilà j'ai un problème concernant les formulaires international. Donc lorsque je vais enregistrer mon formulaire, celui-ci va d'abord m'enregistrer les formulaires "Translate" (On ne connait pas la clé primaire) et puis m'enregistrer le formulaire principal (On va connaitre la clé primaire).

    J'ai donc une erreur : SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'id' cannot be null ce qui est tout à fait normal au vu du déroulement de l'enregistrement.

    J'ai trouvé une solution comme quoi il faut inverser deux lignes sur le fichier sfFormObject.class.php mais cela ne marche toujours pas.

    La seule "solution" c'est de faire un embedI18n() que lorsqu'on édite mais c'est trop "tiré par les cheveux" comme solution.

    Donc je fais appel à vous pour me venir en aide.

    Merci

  2. #2
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Je ne suis pas sur de bien comprendre ce que tu veux faire.

    Tu aurais une table avec le plugin doctrine I18N active, modifiable par 1 utilisateur dans une langue unique ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 69
    Par défaut
    Voilà ma table :

    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
     
    Parc:
      tableName: parc
      actAs:
        I18n: { fields: [description, site_web] }
        Timestampable:
          created: { name: created, type: timestamp, format: Y-m-d H:i:s }
          updated: { name: updated, type: timestamp, format: Y-m-d H:i:s }
        SoftDelete: { name: deleted }
      columns:
        id_parc: { type: integer(4), unsigned: true, primary: true, autoincrement: true }
        nom: { type: string(255), notnull: true }
        adresse: { type: string(255) }
        description: { type: string(4000) }
        site_web: { type: string(255) }
    J'utilise ensuite l'admin générator pour avoir mon backend puis je modifie mon ParcForm.class.php pour rajouter les champs description et site_web :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    class ParcForm extends BaseParcForm
    {
    	public function configure()
    	{
    		unset(	$this['created'],
    				$this['updated'],
    				$this['deleted']);
     
    		$this->embedI18n(array('en', 'fr'));
    		$this->widgetSchema->setLabel('en', 'Anglais');
    		$this->widgetSchema->setLabel('fr', 'Français');
    	}
    }
    Jusque là tout marche comme je le souhaite. Ensuite lorsque je vais sur mon backend et que j'envoi mon formulaire j'ai l'erreur : SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'id_parc' cannot be null

    Pourtant dans la debugbar j'ai bien une première requête pour mon formulaire principal puis une seconde requête pour la traduction mais sans la clé primaire qui n'a pas été récupéré d'où l'erreur de violation de contrainte.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    8	Info Doctrine_Connection_Statement	execute : INSERT INTO parc (status, nom, adresse, created, updated) VALUES (?, ?, ?, ?, ?) - (1, ZooParc de Beauval, , 2010-04-27 09:48:07, 2010-04-27 09:48:07)
    9	Info Doctrine_Connection_Statement	execute : INSERT INTO parc_translation (id_parc, lang, description, site_web) VALUES (?, ?, ?, ?) - (, en, test en, test en)
    10	Error Doctrine_Connection_Mysql_Exception	SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'id_parc' cannot be null

  4. #4
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Pourquoi ne pas utiliser les fonctions du générateur d'administration pour gérer la saisie des muti-langues ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 69
    Par défaut
    Peux tu m'éclairer un peu plus ?

  6. #6
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    A priori cela est déprécié dans le générateur d'administration en 1.4, désolé

    Regarde ici tu devrais y trouver ton bonheur

Discussions similaires

  1. Réponses: 19
    Dernier message: 26/01/2006, 08h44
  2. Réponses: 1
    Dernier message: 19/12/2005, 16h57
  3. [JS] Problème de quotes pour enregistrer un formulaire.
    Par polnioumane dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 24/10/2005, 17h04
  4. enregistrer un formulaire
    Par pascb dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 11/10/2005, 10h13
  5. Comment enregistrer le son interne ?
    Par ired dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 31/01/2005, 13h43

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