Outils pour utilisateurs

Outils du site


devweb:laravel:validator:request (lu 13965 fois)

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
devweb:laravel:validator:request [09-05-2017 23:39]
edmc73
devweb:laravel:validator:request [21-08-2017 23:45] (Version actuelle)
edmc73
Ligne 68: Ligne 68:
         ];         ];
     }     }
 +
 +
 +</code>
 +
 +Validation custom à placer dans **app/Providers/AppServiceProvider@boot**
 +<code php>
 +// Lorsque vous passez un array, pour s'assurer que la somme fait 100
 +
 +        Validator::extend('sumEqual100', function($attribute, $value, $parameters, $validator){
 +            if(collect($value)->sum()==100)
 +                return true;
 +            return false;
 +        }, "The sum of the percentages of each message must be 100");
 +
 +// ici on a un array en entrée avec des ids dans la clé du array
 +// on veut comparer cette liste à une table et retourner en erreur les ids qui n'existe pas dans la table
 +        Validator::extend('his_messages_in_keys', function($attribute, $value, $parameters, $validator){
 +
 +            $ids=array_keys($value);
 +            $message_ids = \App\Models\Message::where('user_id',auth()->user()->tenant_id)
 +                ->whereIn('id',$ids)->pluck('id')->toArray();
 +            $diff=array_diff($ids,$message_ids);
 +            if(count($diff)==0)
 +                return true;
 +
 +            $validator->addReplacer('his_messages_in_keys', function($message, $attribute, $rule, $parameters) use ($diff) {
 +                return str_replace(':ids', implode(',', $diff), $message);
 +            });
 +            return false;
 +
 +        }, "Following message ids doesn't exists or doesn't belongs to you : :ids");
  
  
 </code> </code>
devweb/laravel/validator/request.1494365960.txt.gz · Dernière modification: 09-05-2017 23:39 de edmc73