Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony 删除FOSUserBundle错误消息_Symfony_Twig_Fosuserbundle - Fatal编程技术网

Symfony 删除FOSUserBundle错误消息

Symfony 删除FOSUserBundle错误消息,symfony,twig,fosuserbundle,Symfony,Twig,Fosuserbundle,我正试图从我的表单中删除通用的FOSUserBundle消息 这是我出错时的结果: 我想删除红场上的消息。 正如你所看到的,我成功地发布了我自己的错误消息 我查看了大量其他论坛,但没有成功 这是我的密码: app/MDBUserBundle/views/Registration/register\u content.html(我覆盖了注册表表单) ContainsUserValidator.php <?php namespace MDB\UserBundle\Validator\C

我正试图从我的表单中删除通用的FOSUserBundle消息

这是我出错时的结果:

我想删除红场上的消息。 正如你所看到的,我成功地发布了我自己的错误消息

我查看了大量其他论坛,但没有成功

这是我的密码:

  • app/MDBUserBundle/views/Registration/register\u content.html(我覆盖了注册表表单)

    ContainsUserValidator.php

    <?php
    namespace MDB\UserBundle\Validator\Constraints;
    
    use Symfony\Component\Validator\Constraint;
    use Symfony\Component\Validator\ConstraintValidator;
    
    class ContainsUserValidator extends ConstraintValidator
    {
        protected $em;
    
        public function __construct(\Doctrine\ORM\EntityManager $em)
        {
            $this->em = $em;
        }
    public function validate($value, Constraint $constraint)
        {
            $repository     = $this->em->getRepository('MDBUserBundle:User');
            $user           = $repository->findOneByUsername($value);
    
            if ($user) {
                $this->context->addViolation(
                    $constraint->message,
                    array('%string%' => $value)
                );
    }}}
    
    因此,如果您有删除这些消息的想法,那就太好了:)


    提前感谢

    我认为您的约束与用户名的原始FOSUserBundle约束相同。您可能对Symfony没有什么经验,也不知道它在默认情况下已被禁用

    所有捆绑包的翻译文件都采用点符号(
    fos\u user.username.ready\u existed
    )。您可以覆盖现有的翻译文件或使用您的语言环境添加新的翻译文件。在该文件中,您可以为所有约束设置所有消息


    如果你想禁用一些约束,你需要覆盖默认的
    验证
    文件。

    谢谢你,它工作起来很有魅力。确实,我对这个框架有一个小小的体验^^^^^再次谢谢
        <div class="form-group"> 
        <label for={{ form.username.vars.id }}>Pseudo</label>
    {{ form_widget(form.username,{'attr': {'class': 'form-control' , 'placeholder':'Entrez votre pseudo'}}) }}
    {{ form_errors(form.username) }}
    </div>
    <div class="form-group"> 
        <label for={{ form.email.vars.id }}>Adresse e-mail</label>
    {{ form_widget(form.email , {'attr': {'class': 'form-control' , 'placeholder':'Entrez votre adresse mail'}}) }}
    {{ form_errors(form.email) }}
        </div>
        <div class="form-group"> 
            <label for={{ form.plainPassword.first.vars.id }}>Mot de passe</label>
    {{ form_widget(form.plainPassword.first,{'attr': {'class': 'form-control' , 'placeholder':'Entrez votre mot de passe'}}) }}
    {{ form_errors(form.plainPassword.first) }}
    </div>
    <div class="form-group"> 
        <label for={{ form.plainPassword.second.vars.id }}>Confirmation du mot de passe</label>
     {{ form_widget(form.plainPassword.second,{'attr': {'class': 'form-control' , 'placeholder':'Confirmez votre mot de passe'}}) }}
        </div>
        {{ form_rest(form) }}
        <div>
        <input type="submit" class="btn btn-default" value="Enregistrer" />
        </div>
    </form>
    </div>
    
    <?php
    
    namespace MDB\UserBundle\Form\Type;
    
    use Symfony\Component\Form\AbstractType;
    use Symfony\Component\Form\FormBuilderInterface;
    
    class RegistrationFormType extends AbstractType {
    
    public function buildForm(FormBuilderInterface $builder, array $options) {
    
        parent::buildForm($builder, $options);
    
        // Ajoutez vos champs ici, revoilà notre champ *location* :
    
    }
    
    public function getParent() {
        return 'fos_user_registration';
    }
    
    public function getName() {
        return 'mdb_user_registration';
    }
    
    } 
    ?>
    
    namespace MDB\UserBundle\Validator\Constraints;
    
    use Symfony\Component\Validator\Constraint;
    
    /**
     * @Annotation
     */
    class ContainsUser extends Constraint {
    
        public $message = 'L\'utilisateur "%string%" exist déja.';
    
        public function validatedBy() {
            return 'contains_user';
        }
    
        public function getTargets() {
            return array(self::CLASS_CONSTRAINT, self::PROPERTY_CONSTRAINT);
        }
    
    }
    
    <?php
    namespace MDB\UserBundle\Validator\Constraints;
    
    use Symfony\Component\Validator\Constraint;
    use Symfony\Component\Validator\ConstraintValidator;
    
    class ContainsUserValidator extends ConstraintValidator
    {
        protected $em;
    
        public function __construct(\Doctrine\ORM\EntityManager $em)
        {
            $this->em = $em;
        }
    public function validate($value, Constraint $constraint)
        {
            $repository     = $this->em->getRepository('MDBUserBundle:User');
            $user           = $repository->findOneByUsername($value);
    
            if ($user) {
                $this->context->addViolation(
                    $constraint->message,
                    array('%string%' => $value)
                );
    }}}
    
    <?php
    
    namespace MDB\UserBundle;
    
    use Symfony\Component\HttpKernel\Bundle\Bundle;
    
    class MDBUserBundle extends Bundle {
    
    public function getParent()
        {
            return 'FOSUserBundle';
        }
    }
    
    <?xml version="1.0" ?>
    <constraint-mapping xmlns="http://symfony.com/schema/dic/constraint-mapping"
                        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                        xsi:schemaLocation="http://symfony.com/schema/dic/constraint-mapping
    
    http://symfony.com/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd">
    
        <class name="FOS\UserBundle\Model\User">
    
            <property name="username">
                <constraint name="NotBlank">
                    <option name="message">fos_user.username.blank</option>
                    <option name="groups">
                        <value>Registration</value>
                        <value>Profile</value>
                    </option>
                </constraint>
                <constraint name="MDB\UserBundle\Validator\Constraints\ContainsUser">             
                    <option name="groups">
                        <value>Registration</value>
                        <value>Profile</value>
                    </option>                
                </constraint>     
    
                <constraint name="Length">
                    <option name="min">4</option>
                    <option name="minMessage">fos_user.username.short</option>
                    <option name="max">20</option>
                    <option name="maxMessage">fos_user.username.long</option>
                    <option name="groups">
                        <value>Registration</value>
                        <value>Profile</value>
                    </option>
                </constraint>
    
    
    
            </property>
        </class>
    
    </constraint-mapping>
    
    services:
        mdb_user.registration.form.type:
            class: MDB\UserBundle\Form\Type\RegistrationFormType
            tags:
                - { name: form.type, alias: mdb_user_registration }
    
        mdb.user.validator.contains_user:
            class: MDB\UserBundle\Validator\Constraints\ContainsUserValidator
            arguments: [ "@doctrine.orm.entity_manager" ]       
            tags:
                - { name: validator.constraint_validator, alias: contains_user } 
    
        mdb_user.registration_complet:
            class: MDB\UserBundle\EventListener\RegistrationConfirmListener
            arguments: ["@router"]
            tags:
                - { name: kernel.event_subscriber }