Php 使用fosuserbundle更新用户配置文件symfony3

Php 使用fosuserbundle更新用户配置文件symfony3,php,fosuserbundle,symfony,Php,Fosuserbundle,Symfony,我正在用symfony3做一个web应用程序,我需要一种方法让用户编辑和更新他们的个人资料。我使用FosUserBundle来管理用户访问,但我不知道该采取什么步骤来解决我的问题。 有人有什么想法或有用的链接可以分享吗? 谢谢我解决了这个问题。是的,这是我关于stackoverflow的第一个问题,我正在学习。 这是我的代码: dogController.php /** * @Route("/profile/edit", name= "edit_profile" )

我正在用symfony3做一个web应用程序,我需要一种方法让用户编辑和更新他们的个人资料。我使用FosUserBundle来管理用户访问,但我不知道该采取什么步骤来解决我的问题。 有人有什么想法或有用的链接可以分享吗?
谢谢

我解决了这个问题。是的,这是我关于stackoverflow的第一个问题,我正在学习。
这是我的代码:

dogController.php

     /**
     * @Route("/profile/edit", name= "edit_profile"  ) 
     */

    public function edit_profileAction(Request $request)
    {

        $user = $this->getUser();

        $form = $this->createForm(UserType::class, $user);

        $form->handleRequest($request);

        if ($form->isValid()) {

            /** @var $userManager \FOS\UserBundle\Model\UserManagerInterface */

            $userManager = $this->get('fos_user.user_manager');

            $event = new FormEvent($form, $request);

            $dispatcher = $this->get('event_dispatcher');

            $dispatcher->dispatch(FOSUserEvents::PROFILE_EDIT_SUCCESS, $event);

            $userManager->updateUser($user);

            if (null === $response = $event->getResponse()) {

                //$url = $this->generateUrl('fos_user_profile_show');

                $url = $this->generateUrl('edit_profile');
                $response = new RedirectResponse($url);

            }
            $dispatcher->dispatch(FOSUserEvents::PROFILE_EDIT_COMPLETED, new FilterUserResponseEvent($user, $request, $response));

             $this->get('session')->getFlashBag()->add(
                                            'notice',
                                            'Profile Updated!'
                );

            return $response;
        }


        return $this->render('dog/edit_profile.html.twig',array('form'=>$form->createView()));
    }
UserType.php

    <?php

    namespace AppBundle\Form;

    use Symfony\Component\Form\AbstractType;
    use Symfony\Component\Form\FormBuilderInterface;
    use Symfony\Component\OptionsResolver\OptionsResolverInterface;
    use Vich\UploaderBundle\Form\Type\VichImageType;
    use Symfony\Component\HttpFoundation\File\File;
    use Symfony\Component\Form\Extension\Core\Type\FileType;


    class UserType extends AbstractType{

        public function buildForm(FormBuilderInterface $builder, array $options){

            $builder->add('username')
                    ->add('name')
                    ->add('surname')
                    ->add('email')
                    ->add('telephone')
                    ->add('imageFile', FileType::Class );


        }

        public function setDefaultOptions(OptionsResolverInterface $resolver){

            $resolver->setDefaults( array('data_class' => 'AppBundle\Entity\User') ); 
        }

        public function getName() {

            return 'appBundle_user';
        }`enter code here`
    }

只要看看他们的,你就会在那里找到你需要的一切。提示:查看配置文件页面。一般提示:您是StackOverflow新手,请查看页面。你们的问题是离题的,因为它是关于寻找工具或第三方页面的,所以很可能会被关闭。问一个好问题,得到一个好的回答。若你们买了洗衣机,你们会问如何在互联网上使用它?只需阅读产品附带的文档即可。
<header>
  <div class="container">
    <div class="row">
      <div class="col-lg-12">
          <h2 class="name">Edit Profile</h2>
          <div class="row" >
            <div class="col-lg-12">

              <div class="input_width" > 

                  {% for flashMessage in app.session.flashbag.get('notice') %}

                  <div class="alert alert-success alert">
                      {{ flashMessage }}
                  </div>

                  {% endfor %}

                  {{form_start(form, {'attr': {'class': 'form-horizontal'}} )}}
                  {{ form_errors(form) }}

                      <div class="form-group">
                    {{ form_label(form.username) }}
                    {{ form_errors(form.username) }}
                    {{ form_widget(form.username , {'attr': {'class': 'form-control'}} ) }}
                    </div>

                        <div class="form-group">
                    {{ form_label(form.email) }}
                    {{ form_errors(form.email) }}
                    {{ form_widget(form.email , {'attr': {'class': 'form-control'}} ) }}
                    </div>



                    <div class="form-group">
                    {{ form_label(form.name) }}
                    {{ form_errors(form.name) }}
                    {{ form_widget(form.name , {'attr': {'class': 'form-control'}} ) }}
                    </div>

                    <div class="form-group">

                    {{ form_label(form.surname) }}
                    {{ form_errors(form.surname) }}
                    {{ form_widget(form.surname, {'attr': {'class': 'form-control'}}) }}
                    </div>

                    <div class="form-group">

                    {{ form_label(form.telephone) }}
                    {{ form_errors(form.telephone) }}
                    {{ form_widget(form.telephone, {'attr': {'class': 'form-control'}}) }}
                    </div>

                     <div class="form-group">

                    {{ form_label(form.imageFile) }}
                    {{ form_errors(form.imageFile) }}
                    {{ form_widget(form.imageFile) }}
                    </div>

                  <input type="submit" value="Submit" class="btn btn-default bluInput " />
                  {{form_end(form)}}

                </div>
            </div>
          </div>
      </div>
    </div>
  </div>
</header>