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 :

Backend:formulaire différent selon les contexts


Sujet :

Symfony PHP

Vue hybride

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 73
    Par défaut Backend:formulaire différent selon les contexts
    Bonjour,

    Je vais essayer d'être clair.
    Je me prend un peu la tête sur les formulaires new et edit du backend.

    Dans le frontend, j'ai un formulaire pour l'enregistrement de client (Customer).
    Ils entrent leur nom, prenom, mail, un mot de passe (2 input fois pour être sûr) etc...
    Bien-sûr on vérifie entre autres que le mail n'existe pas déjà dans la bdd.

    Dans le backend, si j'édite un client, les champs concernant le password sont vides (de toute façon ils sont cryptés dans la bdd), et à la sauvegarde il me dit que le mail est déjà présent dans la table.
    -> la sauvegarde échoue donc

    L'idée est donc de modifier le fichier generator.yml pour avoir un formulaire adapter au backend.
    J'ai donc dans le generator.yml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     form:
            class: BackendCustomerForm
          edit:
            title: Edition de %%firstname%% %%lastname%%
          new:     ~
    Et je me fais un formulaire BackendCustomerForm, dans lequel je fais, entre autres, unset($this['password']).

    Ca fonctionne très bien pour l'édition d'un client (sauf que je ne peux pas changer le mot de passe, c'est pas grave).
    Par contre, ça ne fonctionne pas pour la création d'un nouveau client.
    J'obtiens l'erreur :
    Savez-vous comment régler mon problème?
    MErci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Ta classe BackendCustomerForm elle étend BaseCustomerForm ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 73
    Par défaut
    Laissez tomber je suis trop c***

    Dans mon formulaire backendCustomerForm, j'avais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $this->setWidgets(array(
    		'id' => new sfWidgetFormInputHidden()
    )
    ....
    $this->setValidators(array(
    		'id' => new sfValidatorInteger()
    )
    J'ai supprimé cela et ça fonctionne.
    Deux jours de galère....pour rien

    Merci

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 73
    Par défaut
    Par contre,

    Comment feriez-vous pour avoir deux formulaires différents pour 'edit' et 'new' dans le backend?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 267
    Par défaut
    je me posais également la même question

  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
    Tous dépend de ce que tu appels les backend.

    Si le backend est la partie administration du site, tu y fais les formulaires que tu veux, comme dans le frontend.

    Si par backend tu entends des formulaires crud d'administration avec un generator et tous ce qui suit, on est pas dans le backend mais dans un crud d'administration.

    Tu peux, dans le generator.yml faire de nombreux paramétrages, tu y as notamment une section spécifique pour l'edit et une autre pour les new. De quoi déjà paramétrer beaucoup de chose. Si cela ne suffisait pas, tu peux parfaitement créer des enfants de ton form pour ta table. Je pars toujours de celui qui est dans lil/form/doctrine/base de manière à avoir une base stable et commune. Ensuite, tu vas renseigner dans les sections edit et new quel est le form utilisé.

    Tu te retrouves donc avec des formulaires différents (mais toujours basés sur la même table).

    Pour la vérification de l'unicité de l'adresse email, ne te tape pas le cul par terre. Le mieux est de le faire au niveau du validateur. Et une sécurité avec un index unique sur la base. Donc, aucune vérification à faire dans le modèle.

    Pour le mot de passe, met l'encodage dans ton objet modèle. En surchargeant le setPass() de manière à gérer l'encodage en un lieu unique, si tu veux un jour le changer, il n'y a qu'une méthode à modifier. En général je crée une méthode checkPass() qui permet de vérifier que le mot de passe donné en argument est bien celui encodé dans la base. Et l'objet du modèle fait tous le travail.

Discussions similaires

  1. Taille de tableau différent selon les browser
    Par sethnesta dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 22/05/2009, 14h50
  2. Réponses: 7
    Dernier message: 24/11/2008, 21h44
  3. Margin-left différent selon les navigateurs (IE et FF)
    Par snyfir dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 14/04/2008, 20h00
  4. Texte différent selon les variables..
    Par the clairvoyant dans le forum Flash
    Réponses: 1
    Dernier message: 09/07/2007, 17h15
  5. tailles d'input différentes selon les postes (?)
    Par mch_27 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 26/10/2005, 11h21

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