Outils pour utilisateurs

Outils du site


devweb:laravel:validator (lu 10152 fois)

Validator

FIXME

Téléphone

'telephone'    => array('required','regex:#^((\+33)|0)[0-9]{9}$#'),

Code postal

'code_postal' => array('required','regex:#^(F-)?((2[A|B])|[0-9]{2})[0-9]{3}$#'),

A savoir

Les erreurs renvoyées par Validator utilise les méthodes de MessageBag.

Donc

	@if ($errors->count())
	<div class="alert alert-danger">
		@foreach ($errors->all() as $error)
			{{$error}}<br>
		@endforeach
	</div>
	@endif

CustomValidator

Définir ses propres validations

<?php 
class CustomValidator extends Illuminate\Validation\Validator {
  function __construct($translator, $data, $rules, $messages = array(), $customAttributes = array()){
    parent::__construct($translator, $data, $rules, $messages, $customAttributes);
    $this->implicitRules[] = studly_case('name_by_type');
  }
 
  public function validateHex($attribute, $value, $parameters)
  {
    if(preg_match("/^#?([a-f0-9]{6}|[a-f0-9]{3})$/", $value))
    {
      return true;
    }
 
    return false;
  }
 
  public function validateNameByType($attribute, $value, $parameters)
  {
        // On peut mettre vide
        if(empty($value))
          return true;
 
 	return false;
  }
 
 
}

Subtilité, si le champ envoyé par le formulaire est vide, aucune validation ne sera faite sur ce champ. Pour forcer tout ça, il faut rendre la règle implicit en rajoutant le constructeur et en ajoutant la règle dans le tableau des règles implicites (comme toutes les règles commençant par required)

devweb/laravel/validator.txt · Dernière modification: 09-01-2015 16:25 de edmc73