Php Symfony-我无法使用细枝自定义我的表单

Php Symfony-我无法使用细枝自定义我的表单,php,symfony,login,twig,Php,Symfony,Login,Twig,我想在twig(登录+密码)中创建一个自定义的登录表单。如果输入的信息存在,表单应该搜索用户表和LDAP目录 此外,当我验证表单时,我不希望在URL中找到登录名和密码 在验证时,如果用户存在,他将被重定向到一个页面,否则他将保留在登录页面上 我设法制作了一个自定义表单,但它在URL中返回登录名和密码 看起来是这样的: 这是twig中的代码: {% extends 'base.html.twig' %} {% block stylesheets %} <link href="//maxcd

我想在twig(登录+密码)中创建一个自定义的登录表单。如果输入的信息存在,表单应该搜索用户表和LDAP目录

此外,当我验证表单时,我不希望在URL中找到登录名和密码

在验证时,如果用户存在,他将被重定向到一个页面,否则他将保留在登录页面上

我设法制作了一个自定义表单,但它在URL中返回登录名和密码

看起来是这样的:

这是twig中的代码:

{% extends 'base.html.twig' %}
{% block stylesheets %}
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.0/js/bootstrap.min.js"></script>
<script src="//code.jquery.com/jquery-1.11.1.min.js"></script>rel="stylesheet"> 

{% endblock %}
{% block body %}

<form class="navbar-form navbar-center">
    <div class="input-group">
        <span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span>
        <input id="text" type="text" class="form-control" name="login" value="" placeholder="Login">                                        
    </div>
    <div class="input-group">
        <span class="input-group-addon"><i class="glyphicon glyphicon-lock"></i></span>
        <input id="password" type="password" class="form-control" name="password" value="" placeholder="Mot de passe">                                        
    </div>
    <button type="submit" class="btn btn-primary">Valider</button>
<br/><br/>
    Pas de compte académique ? <a href="{{path('paquets_index')}}">Demande de création de compte</a>
</form>

{% endblock %}
{%extends'base.html.twig%}
{%块样式表%}
rel=“样式表”>
{%endblock%}
{%block body%}
瓦利德


你想去哪里? {%endblock%}
现在,我的目标是确保验证URL中没有登录名和密码。这将只是一个签入功能,它将在下一页显示是或否。我做不到

此外,从功能的角度来看,从我的用户实体查看formType builder是否有用?或者我可以满足于这种形式,它会将输入的信息发送回控制器,以进行验证

如果有疑问,这里是我的表单生成器

<?php

namespace Site\PagesBundle\Form;

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

class ConnexionType extends AbstractType
{
    /**
     * {@inheritdoc}
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
        ->add('identifiant', TextType::class)
        ->add('password', PasswordType::class,array(
            'attr' => array(
                'placeholder'=> 'Mot de passe',
                'label' =>'Mot de passe',
            )
        ))
        ;
    }/**
     * {@inheritdoc}
     */
    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => 'Site\PagesBundle\Entity\User'
        ));
    }

    /**
     * {@inheritdoc}
     */
    public function getBlockPrefix()
    {
        return 'site_pagesbundle_user';
    }


}

当前您没有使用由ConnexionType生成的表单,如果您想在细枝文件中使用它,可以通过控制器将其显示为
{{form(form)}

然后使用POST方法不在url中传递登录名和密码

否则,我建议使用安全包来获取安全表单


我希望我帮了你。

目前你没有使用ConnexionType生成的表单,如果你想在你的小树枝文件中使用它,你可以通过你的控制器将它显示为
{form(form)}

然后使用POST方法不在url中传递登录名和密码

否则,我建议使用安全包来获取安全表单


我希望我帮了你。

我不太确定,你是如何重新发明轮子的。但是symfony已经准备了很多东西,因为这在用例中并不少见

我喜欢关于构建登录的3.4教程:

(在另一方面,可以切换到4.3或其他版本,但是,3.4教程应该仍然有效,即使在4.x中也是如此)


您不需要特别使用自己的FormType进行登录,因为安全组件已经处理表单提交。还可以看看csrf保护;o)

我不太清楚,你是如何重新发明轮子的。但是symfony已经准备了很多东西,因为这在用例中并不少见

我喜欢关于构建登录的3.4教程:

(在另一方面,可以切换到4.3或其他版本,但是,3.4教程应该仍然有效,即使在4.x中也是如此)


您不需要特别使用自己的FormType进行登录,因为安全组件已经处理表单提交。还可以看看csrf保护;o)

您好,是的,我的目标就是使用formType,同时保持与我在第一篇照片帖子中发布的完全相同的渲染(设计)。因为使用formType,我无法在正确插入Glyph图标的情况下获得Bootstrap 3渲染。这里有一个定制表单的第一个答案谢谢你的回答,我终于编辑了表单:)你好,是的,我的目标就是使用表单类型,同时保持与我在第一篇照片帖子中发布的呈现(设计)完全相同。因为使用formType,我无法在正确插入Glyph图标的情况下获得Bootstrap 3渲染。第一个答案是定制你的表单谢谢你的回答,我终于编辑了表单:)谢谢你的回答!我刚读了这篇文章。那么,如果输入的数据存在,它会在用户表中查找,并自动重定向吗?但是,如果此实用程序允许同时检查用户表和LDAP目录,则未提及,是这样吗?您必须添加一个新的用户提供程序,我怀疑。@AgarioFR应该做到这一点,先使用chain user provider检查LDAP,然后再使用DBThank!这将检查LDAP,但这是否意味着我必须为LDAP和DB用户创建一个登录表单?或者我可以把两者结合起来?@AgarioFR我相信你可以把它们结合起来,不过我很确定,谷歌搜索会帮你找到答案(你不是第一个遇到这个挑战的人;o)谢谢你的回答!我刚读了这篇文章。那么,如果输入的数据存在,它会在用户表中查找,并自动重定向吗?但是,如果此实用程序允许同时检查用户表和LDAP目录,则未提及,是这样吗?您必须添加一个新的用户提供程序,我怀疑。@AgarioFR应该做到这一点,先使用chain user provider检查LDAP,然后再使用DBThank!这将检查LDAP,但这是否意味着我必须为LDAP和DB用户创建一个登录表单?或者我可以把两者结合起来?@AgarioFR我相信你可以把它们结合起来,不过我很确定,谷歌搜索会帮你找到答案(你不会是第一个遇到这种挑战的人;o)