protected function validate($input)
{
$data = $rules = [];
foreach ($this->builder->fields() as $field) {
if (!method_exists($field, 'rules') || !($rule = $field->rules())) {
continue;
}
$columns = $field->column();
if (is_string($columns)) {
if (!array_key_exists($columns, $input)) {
continue;
}
$data[$field->label()] = array_get($input, $columns);
$rules[$field->label()] = $rule;
}
if (is_array($columns)) {
foreach ($columns as $key => $column) {
if (!array_key_exists($column, $input)) {
continue;
}
$data[$field->label() . $key] = array_get($input, $column);
$rules[$field->label() . $key] = $rule;
}
}
}
$this->validator = Validator::make($data, $rules);
return $this->validator->passes();
}