1

Pour afficher les erreurs de validation après champ de saisie I à l'aide:Créer des aides funcition pour afficher les erreurs de validation

<div class="form-group"> 
    {!! Html::decode(Form::label('first_name','First Name:<span class="required">*</span>',['class'=>'control-label col-sm-3'])) !!} 
    <div class="col-sm-6"> 
     {!! Form::text('first_name',null,['class'=>'form-control']) !!} 
     @if ($errors->has('first_name')) 
      <span class="help-block"> 
       <strong>{{ $errors->first('first_name') }}</strong> 
      </span> 
     @endif 
    </div> 
</div> 
<div class="form-group"> 
    {!! Html::decode(Form::label('last_name','Last Name:<span class="required">*</span>',['class'=>'control-label col-sm-3'])) !!} 
    <div class="col-sm-6"> 
     {!! Form::text('last_name',null,['class'=>'form-control']) !!} 
     @if ($errors->has('last_name')) 
      <span class="help-block"> 
       <strong>{{ $errors->first('last_name') }}</strong> 
      </span> 
     @endif 
    </div> 
</div> 
// and so on...... 

Ce code fonctionne parfaitement. Mais je dois écrire presque le même code dans chaque boîte de saisie. Donc, j'ai prévu de faire une fonction globale pour afficher les erreurs. Pour y parvenir, j'ai fait ce qui suit.

  1. Créer une helpers.php dans app dossier
  2. Ecrire le code suivant:

    function isError($name){ 
        if($errors->has($name)){ 
         return '<span class="help-block"><strong>'.$errors->first($name).'</strong></span>'; 
        } 
    } 
    
  3. run composer dump-autoload

  4. Utilisé dans le fichier de la lame de cette façon:

    <div class="form-group"> 
        {!! Html::decode(Form::label('first_name','First Name:<span class="required">*</span>',['class'=>'control-label col-sm-3'])) !!} 
        <div class="col-sm-6"> 
         {!! Form::text('first_name',null,['class'=>'form-control']) !!} 
         {{ isError('first_name') }} 
        </div> 
    </div> 
    <div class="form-group"> 
        {!! Html::decode(Form::label('last_name','Last Name:<span class="required">*</span>',['class'=>'control-label col-sm-3'])) !!} 
        <div class="col-sm-6"> 
         {!! Form::text('last_name',null,['class'=>'form-control']) !!} 
         {{ isError('last_name') }} 
        </div> 
    </div> 
    

Maintenant, quand je vais à create.blade.php j'ai une erreur

Undefined variable: erreurs (Voir: D: \ xampp \ htdocs \ hms \ resources \ vues \ clients \ create.blade.php)

Je sais que le problème est en helpers.php parce que je ne l'ai pas défini la $errors, je colle juste que le code de fichier lame.

Toute aide sera appréciable. Merci d'avance.

+0

'errors' $ est pas défini dans votre aide. Vous devez passer l'objet errors à la fonction 'isError()'. Par exemple 'isError ($ errors, last_name ')'. – Jeemusu

+1

@Jeemusu Bonne idée. Je vais essayer. – smartrahat

+0

@Jeemusu Oui, ça a marché. De plus j'ai changé dans la lame '{!! isError ($ errors, 'first_name') !!} 'pour échapper la balise html. Pouvez-vous en faire une réponse, pour que je puisse l'accepter? – smartrahat

Répondre

3

Le problème est que la variable $errors n'est pas définie dans le cadre de votre méthode d'assistance.

Cela peut être facilement résolu en transmettant l'objet $errors à la méthode auxiliaire isError().

Aide

function isError($errors, $name){ 
    if($errors->has($name)){ 
     return '<span class="help-block"><strong>'.$errors->first($name).'</strong></span>'; 
    } 
} 

Modèle lame

{!! isError($errors, 'first_name') !!}