THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline

#1 contrainte sur un formulaire

(03-11-2015 15:49:26)


Bonjour,

J'ai rajouté une contraire sur champ de mon formulaire
le contrôle se passe bien
cela me renvoie bien le message d'erreur
mais j'aimerai aussi déclencher une erreur sur le champ

//dans la declaration du form
.....
new Constraints\Callback(array("methods" => array(
                            array($this, "checkNumber")
                        )))
.....
    public function checkNumber($value, ExecutionContextInterface $context)
    {
        $Number = NumberModuleQuery::create()->findOneByNumber($value);
        if ($Number) {
            $context->addViolation(Translator::getInstance()->trans("This number already exists."));
        }
    }

l'affichage du formulaire

        {form_field form=$form field='number' }
        <div class="form-group{if $error} has-error{/if}">
            <label class="control-label" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>
            <div class="control-input">
                <input type="text" name="{$name}" id="{$label_attr.for}" class="form-control" maxlength="50" placeholder="{intl l='Placeholder Number'}" value="{$value}" {if $required} aria-required="true" required{/if}{if !isset($error_focus) && $error} autofocus{/if}>
                {if $error }
                <span class="help-block">{$message}</span>
                {assign var="error_focus" value="true"}
                {/if}
            </div>
        </div><!--/.form-group-->

cela me renvoie bien $message
mais cela ne me rajoute pas la class has-error
comment je dois procéder ?

Merci

Offline


Si tu vois le contenu de $message, c'est que $error n'est pas vide, et donc tu dois obligatoirement voir has-error dans ton div. Regarde mieux smile


OpenStudio Toulouse