Php 如果我更新实体,如何快速更新
我的提问-如果我创建用户,在我的字段slug set中-firstname+lastname。如果我更新字段firstname和lastname slug not change,为什么?我需要为这个trable检查做什么?因为我在路由中使用slug字段(用户名) 我有: 我的表格:Php 如果我更新实体,如何快速更新,php,symfony,doctrine-orm,stofdoctrineextensions,Php,Symfony,Doctrine Orm,Stofdoctrineextensions,我的提问-如果我创建用户,在我的字段slug set中-firstname+lastname。如果我更新字段firstname和lastname slug not change,为什么?我需要为这个trable检查做什么?因为我在路由中使用slug字段(用户名) 我有: 我的表格: class DeveloperPersonalInformationType extends AbstractType { /** * @param FormBuilderInterface $builder *
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))
现在我使用自定义变量,首先在username中设置firstname和lastname end,但我想使用@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');
}
还有我的腐烂:
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字段设置为Null,以便进行更新
您已将slug字段设置为Null,以便进行更新
大概是这样的:
if ($form->isValid())
{
$developer->setUsername(Null);
$em->flush($developer);
return $this->redirect($this->generateUrl('artel_profile_homepage', array('username' => $name)) .'#personal-information');
}
但我已经做了笔记测试。可能是这样的:
if ($form->isValid())
{
$developer->setUsername(Null);
$em->flush($developer);
return $this->redirect($this->generateUrl('artel_profile_homepage', array('username' => $name)) .'#personal-information');
}
但我已经做了笔记测试。这很正常,但是如果你更新数据库中的字段,你会突然改变?这很正常,但是如果你更新数据库中的字段,你会突然改变?我不明白,我在我的操作中添加了if form->isValid
$developer->setUsername(null)$em->flush()现在我在slig字段中有null。需要在哪里发布此代码$developer->setUsername(null)$em->flush()代码>?我使用这个:if($form->isValid()){$name=$developer->getFirstName().-'.$developer->getLastName();$developer->setUsername($name);$em->flush();return$this->redirect($this->generateUrl($artel_profile_homepage',array('username'=>$name))。#个人信息#}
这个代码可以工作,但是我想使用@Gedmo\slug我不明白,我在我的操作中添加了,如果form->isValid$developer->setUsername(null)$em->flush()现在我在slig字段中有null。需要在哪里发布此代码$developer->setUsername(null)$em->flush()代码>?我使用这个:if($form->isValid()){$name=$developer->getFirstName().-'.$developer->getLastName();$developer->setUsername($name);$em->flush();return$this->redirect($this->generateUrl($artel_profile_homepage',array('username'=>$name))。#个人信息#}
这段代码可以工作,但我希望使用@Gedmo\SlugI tested,字段'username'=null,字段'username'=null