我有两种不同的形式。一个用于更改用户名,另一个用于更改登录。当我提交其中一个时,第二个清除数据库中的数据。它们似乎是相互联系的,但我不知道如何。
我的控制器
$user = $this->getUser();
$uform = $this->createForm('MainBundle\Form\UsernameType', $user);
$uform->handleRequest($request);
$jform = $this->createForm('MainBundle\Form\JloginType', $user);
$jform->handleRequest($request);
if ($uform->isSubmitted() && $uform->isValid()) {
$this->getDoctrine()->getManager()->flush();
} elseif ($jform->isSubmitted() && $jform->isValid()) {
$this->getDoctrine()->getManager()->flush();
}
表单
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('jLogin');
}
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('username');
}
窗口小部件
{{ form_start(jform, { 'action': path('home_page'), 'attr': { 'class': 'fos_user_profile_edit cbp-mc-form' } }) }}
<div>
{{ form_label(jform.jLogin, 'New username') }}
{{ form_widget(jform.jLogin) }}
</div>
<div>
<input class="cbp-mc-submit" type="submit" value="{{ 'Confirm'|trans }}"/>
</div>
{{ form_end(jform) }}
{{ form_start(uform, { 'action': path('home_page'), 'attr': { 'class': 'fos_user_profile_edit cbp-mc-form' } }) }}
<div>
{{ form_label(uform.username, 'New username') }}
{{ form_widget(uform.username) }}
</div>
<div>
<input class="cbp-mc-submit" type="submit" value="{{ 'Confirm'|trans }}"/>
</div>
{{ form_end(uform) }}
我更改登录时的数据库查询
UPDATE fos_user SET username = ?, username_canonical = ?, jLogin = ? WHERE id = ?
Parameters: [0 => null, 1 => null, 2 => jlogin, 3 => 5]
如何只从提交的表单中将一个数据插入数据库?