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 :

[FosUserBundle] Changer la photo du profile


Sujet :

Symfony PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 145
    Points : 59
    Points
    59
    Par défaut [FosUserBundle] Changer la photo du profile
    Bonjour,

    Je vois que c'est très limité sur les modifications qu'on peut faire sur le compte avec fosUserBundle donc j'aimerais mettre quelque chose d'un peu plus courant, comme l'upload d'une photo pour le membre ou son pourcentage de complétion du profile.

    Pour l'instant je récupère le editAction mais j'ai du mal à faire mon formulaire pour upload la photo, je vois pas du tout comment faire, je débute sous symfony2 mais j'ai déjà un bundle user qui fonctionne bien ou j'ai refais les templates etc la je passe à la partie profile, c'est pas simple sf2 au début

  2. #2
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 145
    Points : 59
    Points
    59
    Par défaut Impossible de récuperer l
    Désolé de faire un petit up mais bon

    Voici le code que j'ai mis dans le ProfileController dans UserBundle qui étends FosUserBundle :

    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
    <?php
     
    namespace Acme\Bundle\UserBundle\Controller;
     
    use Symfony\Component\HttpFoundation\RedirectResponse;
    use FOS\UserBundle\Controller\ProfileController as BaseController;
     
    class ProfileController extends BaseController
    {
        public function editAction()
        {
            // User
            $user = $this->container->get('security.context')->getToken()->getUser();
     
            // Form
            $form = $this->createFormBuilder($user);
            $form->add('photo','file');
     
            // Template
        	return $this->container->get('templating')->renderResponse('AcmeUserBundle:Profile:edit.html.'.$this->getEngine(), array(
                'form' => $form->createView(),
            ));
        }
    }
     
    ?>
    Et il me dis que la méthod createFormBuilder est introuvable, j'aurais aimer pouvoir faire 3 formulaire différent sur la même page. Je ne peux pas en créer pour l'instant une idée ?

  3. #3
    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,

    createFormBuilder est une méthode de Symfony/Bundle/FrameworkBundle/Controller/Controller

    Mais ton controller hérite de FOS\UserBundle\Controller\ProfileController, donc tu dois utiliser la forme complète pour l'appel du formBuilder.
    voir https://github.com/symfony/symfony/b...ller.php#LC167

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 145
    Points : 59
    Points
    59
    Par défaut
    Citation Envoyé par arnooo999 Voir le message
    Bonjour,

    createFormBuilder est une méthode de Symfony/Bundle/FrameworkBundle/Controller/Controller

    Mais ton controller hérite de FOS\UserBundle\Controller\ProfileController, donc tu dois utiliser la forme complète pour l'appel du formBuilder.
    voir https://github.com/symfony/symfony/b...ller.php#LC167
    Ok je fais donc ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        public function editAction()
        {
             $user = $user = $this->container->get('security.context')->getToken()->getUser();
             $form = $this->container->get('form.factory')->createBuilder('form', $user, array());
             $form->add('photo','file');
     
             return $this->container->get('templating')->renderResponse(
                'STUserBundle:Profile:edit.html.'.$this->container->getParameter('fos_user.template.engine'),
                array('form' => $form->createView(), 'theme' => $this->container->getParameter('fos_user.template.theme'))
            );
        }
    Maintenant c'est createView qu'il ne reconnait pas sur le form, je suis sur la bonne route ou pas ?

  5. #5
    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
    createView est une méthode de l'objet Form , pas de l'objet FormBuilder
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        public function editAction()
        {
             $user = $user = $this->container->get('security.context')->getToken()->getUser();
             $formBuilder = $this->container->get('form.factory')->createBuilder('form', $user, array());
             $formBuilder->add('photo','file');
             $form=$formBuilder->getForm();
    
     
             return $this->container->get('templating')->renderResponse(
                'STUserBundle:Profile:edit.html.'.$this->container->getParameter('fos_user.template.engine'),
                array('form' => $form->createView(), 'theme' => $this->container->getParameter('fos_user.template.theme'))
            );
        }

  6. #6
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 145
    Points : 59
    Points
    59
    Par défaut
    Citation Envoyé par arnooo999 Voir le message
    createView est une méthode de l'objet Form , pas de l'objet FormBuilder
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        public function editAction()
        {
             $user = $user = $this->container->get('security.context')->getToken()->getUser();
             $formBuilder = $this->container->get('form.factory')->createBuilder('form', $user, array());
             $formBuilder->add('photo','file');
             $form=$formBuilder->getForm();
    
     
             return $this->container->get('templating')->renderResponse(
                'STUserBundle:Profile:edit.html.'.$this->container->getParameter('fos_user.template.engine'),
                array('form' => $form->createView(), 'theme' => $this->container->getParameter('fos_user.template.theme'))
            );
        }
    Ce code me retourne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Expected argument of type "Object, array or empty", "string" given
    donc c'est pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $formBuilder = $this->container->get('form.factory')->createBuilder('form', $user, array())
    Comment lui injecter l'utilisateur ?

Discussions similaires

  1. [1.x] Upload et recadrage d'une photo de profil
    Par cyril.chandelier dans le forum Symfony
    Réponses: 8
    Dernier message: 07/07/2010, 11h36
  2. changer la photo personnel
    Par restart dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 8
    Dernier message: 03/01/2010, 00h12
  3. [WD10] changer la photo de ma page d'accueil
    Par aldama dans le forum WinDev
    Réponses: 13
    Dernier message: 11/07/2009, 13h23
  4. changer des photo en video et music
    Par claire de lune dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 2
    Dernier message: 10/09/2008, 16h27
  5. Comment ajouter une photo à mon profil ?
    Par ghita269 dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 5
    Dernier message: 18/11/2005, 21h36

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