Intereting Posts
Как сделать несколько штрих-кодов с Zend 2? Интерфейс RESTful для PHP-форума Сортировка многомерных массивов по значению ключа подкадра Предупреждение: mysql_num_rows () ожидает, что параметр 1 будет ресурсом, Полностью запретить кеширование браузера Доступ к значениям массива можно получить с помощью переменных переменных? Как определить, является ли переменная десятичной и меньше 0,01 в PHP? dompdf: загрузка html-файлов для рендеринга, не работает isset () или! empty () для всех переменных в ваших представлениях? Правильно закодируйте символы в почтовой форме PHP («Я» превращается в «I \ m») Как использовать диспетчер объектов в Symfony3 SMTP -> ОШИБКА: Не удалось подключиться к серверу: время ожидания подключения (110) Не удалось выполнить следующее из адреса: xxxxx@gmail.com ОШИБКА PHP запускает скрипт при истечении сеанса Функция Javascript всегда не запускается после .load Удалите модуль и подключите новый

Проверить массив Laravel 5

Мой сценарий ajax посылает массив следующим образом: Этот массив принадлежит Input::get('questions')

  Array ( [0] => Array ( [name] => fields[] [value] => test1 ) [1] => Array ( [name] => fields[] [value] => test2 ) ) 

В html-части пользователь может добавить несколько fields .

Не могли бы вы мне помочь? Мне нужно что-то вроде этого:

  $inputs = array( 'fields' => Input::get('questions') ); $rules = array( 'fields' => 'required' ); $validator = Validator::make($inputs,$rules); if($validator -> fails()){ print_r($validator -> messages() ->all()); }else{ return 'success'; } 

Просто: проверяйте каждый question отдельно, используя для каждого:

 // First, your 'question' input var is already an array, so just get it $questions = Input::get('questions'); // Define the rules for *each* question $rules = [ 'fields' => 'required' ]; // Iterate and validate each question foreach ($questions as $question) { $validator = Validator::make( $question, $rules ); if ($validator->fails()) return $validator->messages()->all(); } return 'success'; 

Пользовательская валидация Laravel для элементов массива

Откройте следующий файл

 /resources/lang/en/validation.php 

Затем добавьте пользовательское сообщение

 'numericarray' => 'The :attribute must be numeric array value.', 'requiredarray' => 'The :attribute must required all element.', 

Чтобы открыть другой файл

 /app/Providers/AppServiceProvider.php 

Теперь замените код функции загрузки, используя следующий код.

 public function boot() { // it is for integer type array checking. $this->app['validator']->extend('numericarray', function ($attribute, $value, $parameters) { foreach ($value as $v) { if (!is_int($v)) { return false; } } return true; }); // it is for integer type element required. $this->app['validator']->extend('requiredarray', function ($attribute, $value, $parameters) { foreach ($value as $v) { if(empty($v)){ return false; } } return true; }); } 

Теперь можно использовать requiredarray для элемента массива. А также используйте numericarray для проверки целочисленного типа элемента массива.

 $this->validate($request, [ 'arrayName1' => 'requiredarray', 'arrayName2' => 'numericarray' ]);