FosUserbundle и шаблон symfony 2 и правки

Я новичок в Symfony 2. Я только что установил базовый FOSuserbundle. Но у меня есть несколько проблем:

  1. Я настроил новый шаблон макета, но не смог найти, где изменить шаблон формы для входа, регистрации, профиля

  2. Я не мог найти, как отредактировать профиль пользователя. Я могу просмотреть профиль, используя /profile, но я не смог найти там ссылку на редактирование.


person Mirage    schedule 12.01.2012    source источник


Ответы (2)


Ответы на ваши вопросы вы можете найти в документации. Вот некоторые моменты:

  1. Скопируйте шаблоны, которые вы хотите изменить, из FOSUserBundle/Resources/views в свой пакет и внесите нужные изменения.
  2. Если вам нужно создать собственную форму профиля (как я думаю, исходя из вашего вопроса), вам нужно создать тип формы профиля и указать, что FOSUserBundle использует его.

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

ТипПрофиляФормы.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')
        ;
    }
}
person Anton Babenko    schedule 12.01.2012
comment
Спасибо за это, но я даже не могу найти URL-адрес маршрутизации для редактирования профиля по умолчанию. - person Mirage; 12.01.2012
comment
Он внутри vendor/bundles/FOS/UserBundle/Resources/config/routing/profile.xml - person Anton Babenko; 12.01.2012

У @Anton есть правильный ответ на первую часть вашего вопроса, но чтобы ответить на вторую часть, если вы можете просматривать свой профиль с /profile, вы можете редактировать, перейдя на /profile/edit в своем браузере.

В форме профиля по умолчанию нет ссылки на редактирование. Если вы хотите его, вам нужно будет последовать совету @Anton и скопировать шаблон(ы) формы по умолчанию и вставить их в каталог с тем же именем в вашем комплекте.

Как уже указывал @Anton, все подробности о том, как это сделать, находятся либо в основная документация или документация для версии 1.2.0 (которая вам понадобится, если вы используете Symfony 2.0.*

person Matt Keeble    schedule 20.06.2012