Symfony - 表单在提交后清除其他行中的数据

时间:2017-03-23 17:07:41

标签: php forms symfony

我有两种不同的形式。一个用于更改用户名,另一个用于更改登录。当我提交其中一个时,第二个清除数据库中的数据。它们似乎是相互联系的,但我不知道如何。

我的控制器

  $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] 

如何只从提交的表单中将一个数据插入数据库?

0 个答案:

没有答案