/**
  * Get the validation rules that apply to the request.
  *
  * @return array
  */
 public function rules()
 {
     $types = \App\Models\BodyMeasurementType::orderBy('id')->get();
     $minTypeID = $types->first()->id;
     $maxTypeID = $types->last()->id;
     $unitIDs = \App\Models\Unit::validationIDs($types->find($this->request->get('body_measurement_type_id'))->unit_type);
     return ['body_measurement_type_id' => sprintf('required|integer|min:%d|max:%d', $minTypeID, $maxTypeID), 'value' => 'required|numeric|min:0', 'unit_id' => sprintf('required|integer|in:%s', $unitIDs)];
 }
Example #2
0
 /**
  * Get the validation rules that apply to the request.
  *
  * @return array
  */
 public function rules()
 {
     $rules = [];
     $rules['exercise_groups'] = 'required|array';
     if (count($this->request->get('exercise_groups'))) {
         foreach ($this->request->get('exercise_groups') as $group_num => $group) {
             $groupName = "exercise_groups." . $group_num;
             $rules[$groupName . ".exercise_id"] = 'required|exists:exercises,id';
             $rules[$groupName . ".exercise_measurements"] = 'required|array';
             $massUnitIDs = Unit::validationIDs(Unit::$unitMassType);
             $distanceUnitIDs = Unit::validationIDs(Unit::$unitDistanceType);
             if (count($this->request->get('exercise_measurements') > 0)) {
                 foreach ($group['exercise_measurements'] as $measurement_num => $exercise_measurement) {
                     $rules = array_merge($rules, $this->exerciseMeasurementRules($group_num, $measurement_num, $massUnitIDs, $distanceUnitIDs));
                 }
             }
         }
     }
     return $rules;
 }