'telephone' => array('required','regex:#^((\+33)|0)[0-9]{9}$#'),
'code_postal' => array('required','regex:#^(F-)?((2[A|B])|[0-9]{2})[0-9]{3}$#'),
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
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)