首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Symfony3 -重复的FieldType不渲染

Symfony3 -重复的FieldType不渲染
EN

Stack Overflow用户
提问于 2016-02-18 05:50:12
回答 1查看 104关注 0票数 0

我有一个重复的字段类型,当我访问页面时,它不会被呈现。

我的控制器中有这个方法:

代码语言:javascript
复制
/**
 * @Route("/{token}", name="pass_reset_form")
 * 
 * Function to reset password.
 */
public function ResetAction(Request $reset, $token)
{
    $form = $this->createForm(ResetformType::class);
    $form->handleRequest($reset);
    if ($form->isSubmitted() && $form->isValid()) {
        $em = $this->getDoctrine()->getManager();
        $user = $em->getRepository('VendorMyBundle:Logins')->findByToken($token);
        if (!empty($user))
        {
            // encode password and update in the DB
            $password = $this->get('security.password_encoder')
            ->encodePassword($user[0], $form["newPassword"]->getData());
            $user[0]->setPassword($password);
            $em->flush();
            $this->addFlash('notice', 'The password has been successfully reset. You can now login.');
            return $this->redirectToRoute('login_route');
        }
    }
    return $this->render(
        'VendorMyBundle:Default:resetEntry.html.twig',
        array('form' => $form->createView())
            );
}

这是ResetformType:

代码语言:javascript
复制
namespace Vendor\MyBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
use Symfony\Component\Form\Extension\Core\Type\PasswordType;

class ResetformType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->add('newPassword', RepeatedType::class, array(
            'type' => PasswordType::class,
            'invalid_message' => 'The password fields must match.',
            'required' => true,
            'first_options'  => array('label' => 'Password'),
            'second_options' => array('label' => 'Repeat Password'),
        ));
    }
}

这是标准的twig代码:

代码语言:javascript
复制
{% block body1 %}
    {{ form_start(form) }}
        <button type="submit">Reset Password</button>
    {{ form_end(form) }}
{% endblock %}

每当我访问将我带到该呈现视图上的路线时,我只看到表单按钮。我查看页面源代码,HTML中只有表单按钮和一个隐藏的表单令牌域。

代码语言:javascript
复制
<form name="resetform" method="post">
    <button type="submit">Reset Password</button>
    <input type="hidden" id="resetform__token" name="resetform[_token]" value="2NJ7Uht8bgVUV27GnD4FHrCOjTFCIXXQyraJkG4jSmc" />
</form>

我遗漏了什么?

EN

回答 1

Stack Overflow用户

发布于 2016-02-18 06:19:15

为任何遇到同样问题的人负责。

要么清除缓存,要么专门单独呈现字段,在我的例子中使用:

{{ form_row(form.newPassword) }}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35468494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档