Laravel 5 Проверка правильности

Я новичок в Laravel 5.

Как удалить пробелы в валидаторе? Я прочитал документацию, но нет валидатора для обрезки (удалить пробелы).

здесь мои правила

$rules = [ 'name' =>'required', 'email' => 'required|email', 'address' => 'required', 'phones' => 'required' ]; 

спасибо за Ваш ответ.

Для валидатора не требуется изменять любые входные данные. В CodeIgniter существует валидатор Trim, но для меня это неправильное место для выполнения обрезки.

Вы можете автоматически обрезать все входные данные, используя это:

 Input::merge(array_map('trim', Input::all())); 

Теперь сделайте остальную часть своей кодировки:

 $username = Input::get('username'); // it's trimed // ... Validator::make(...); 

Вы можете использовать следующий код, чтобы обрезать весь ввод строки (поскольку у вас могут быть массивы на входе)

  // trim all input Input::merge(array_map(function ($value) { if (is_string($value)) { return trim($value); } else { return $value; } }, Input::all())); 

В Laravel 5.2 или 5.3 вы можете использовать обрезку для пробелов, как это делается

$input = array_map('trim', $request->all());

так что это приведет к удалению всех входов пространственной формы, которые были отправлены, и проверка будет работать нормально

 public function formatInput() { $input = array_map('trim', $this->all()); $this->replace($input); return $this->all(); } 

Я расширил класс FormRequest и prepareForValidation метод prepareForValidation который вызывается до проверки.

 // anything I don't want trimmed here protected $untrimmable = []; // replace the request with trimmed request here protected function prepareForValidation() { return $this->replace($this->trimData($this->all())); } // recursively trim the fields in the request here protected function trimData($data,$keyPrefix = '') { $trimmedFields = array_map(function($value,$field) use ($keyPrefix){ // if the value is an array handle it as // a request array and send along the prefix if(is_array($value)){ return $this->trimData($value,$this->dotIndex($keyPrefix,$field)); } // if the field is not in the specified fields to be // left untrimmed if( !in_array($this->dotIndex($keyPrefix,$field),$this->dontTrim) && !in_array($this->dotIndex($keyPrefix,$field), $this->untrimmable) ) { return trim((string) $value); } return $value; }, $data,array_keys($data)); return array_combine(array_keys($data),$trimmedFields); } 

Что оно делает:

  1. Заменить запрос новым с обрезанными входами
  2. Установите все поля, которые я не хочу обрезать в untrimmable свойстве.
  3. Управляет вложенными входами с точечной нотацией.

Вот ссылка на gist https://gist.github.com/msbrime/336a788c7cced2137bdc7896c1241239