Мой вопрос - если я создаю пользователя в моем полевом наборе - firstname + lastname. если я обновляю поля firstname и lastname slug, не меняются, почему? И что мне нужно сделать для этой проверки? Поскольку я использую поле пробкового (имя пользователя) в моей маршрутизации у меня есть:Как сбросить обновление, если я обновляю объект
class SUser implements UserInterface
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @Gedmo\Slug(fields={"firstName", "lastName"}, separator="-")
* @ORM\Column(name="name", type="string", length=255, nullable=false)
* @Assert\Length(min=3, max=255)
*/
protected $username;
моя форма:
class DeveloperPersonalInformationType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('firstname', null, array('label' => 'First Name', 'max_length' => 255, 'required' => false))
->add('lastname', null, array('label' => 'Last Name', 'max_length' => 255, 'required' => false))
Теперь я использую пользовательский вариант, сначала нужен получить ПгвЬЫате и LastName конца набора в имени пользователя, но я хотите использовать @Gedmo \ Slug, как это сделать? Мои действия:
public function submitPersonalInformationAction($username)
{
$em = $this->getDoctrine()->getManager();
$request = $this->get('request');
$profileRepository = $this->get('artel.profile.developer.repository');
$developer = $profileRepository->findOneByUsername($username);
$form = $this->createForm(new DeveloperPersonalInformationType(), $developer);
$form->handleRequest($request);
if ($form->isValid())
{
$name = $developer->getFirstName().'-'.$developer->getLastName();
$developer->setUsername($name);
$em->flush();
return $this->redirect($this->generateUrl('artel_profile_homepage', array('username' => $name)) .'#personal-information');
}
И мой roting:
artel_profile_submit_personal_information:
path: /profile/{username}/personal_information/submit
defaults: { _controller: ArtelProfileBundle:DeveloperProfile:submitPersonalInformation }
requirements: { _method: post }
мой конфиг:
stof_doctrine_extensions:
default_locale: "%locale%"
orm:
default:
timestampable: true
sluggable: true
Его нормальная но, и если вы обновляете поля в базе данных, вы меняете slug? –