FosUserbundle e modelo e edições do symfony 2
-
27-10-2019 - |
Pergunta
Sou novo no symfony 2. Acabei de configurar o FOSuserbundle básico.Mas tenho alguns problemas:
-
Eu configurei o novo modelo de layout, mas não consegui encontrar onde alterar o modelo de formulário para login, registro, perfil
-
Não consegui descobrir como editar o perfil do usuário.Posso ver o perfil usando / profile, mas não consegui encontrar nenhum link de edição lá
Solução
As respostas às suas perguntas podem ser encontradas na documentação .Aqui estão alguns pontos:
- Copie os modelos que deseja modificar de
FOSUserBundle/Resources/views
para o seu pacote e faça as alterações desejadas. - Se você precisa fazer um formulário de perfil personalizado (como eu acho com base na sua pergunta), você deve criar o tipo de formulário de perfil e especificar que FOSUserBundle o usa.
config.yml
services:
my_user.profile.form.type:
class: My\UserBundle\Form\Type\ProfileFormType
arguments: [%fos_user.model.user.class%]
tags:
- { name: form.type, alias: my_user_profile }
fos_user:
profile:
form:
type: my_user_profile
ProfileFormType.php
<?php
namespace My\UserBundle\Form\Type;
use Symfony\Component\Form\FormBuilder;
use FOS\UserBundle\Form\Type\ProfileFormType as BaseType;
class ProfileFormType extends BaseType
{
public function getName()
{
return 'my_user_profile';
}
protected function buildUserForm(FormBuilder $builder, array $options)
{
$builder
->add('email', 'email')
->add('firstName')
->add('lastName')
;
}
}
Outras dicas
@Anton tem a resposta correta para a primeira parte da sua pergunta, mas para responder à segunda parte, se você pode ver seu perfil em /profile
, você pode editar indo para /profile/edit
em seu navegador.
Não há link de edição no formulário de perfil padrão.Se você quiser um, precisará seguir o conselho de @Anton e copiar o (s) modelo (s) de formulário padrão e colá-los em um diretório com o mesmo nome em seu pacote.
Como @Anton já apontou, todos os detalhes sobre como fazer isso estão em documentação principal ou a documentação para a versão 1.2.0 (que você precisará se estiver usando Symfony 2.0. *