table}") as $field) { $type = (!Str::contains($field->Type, '(')) ? $field->Type : substr($field->Type, 0, strpos($field->Type, '(')); $columns[$field->Field] = $type; } return $columns; } /** * filter request columns by fields * @param $request * @param array $additional * @return array */ public function filterRequestColumns($request, $except = []) { if (gettype($request) == "object") { if (method_exists($request, "input")) { $request = $request->input(); } else { abort(403); } } $columns = $this->getColumns(); $return = []; foreach ($request as $k => $v) { if (!in_array($k, array_keys($columns)) || in_array($k, $except)) { continue; } if ($k === "password") { if (!$v) { continue; } $v = Hash::make($v); } switch ($columns[$k]) { case "json": $v = json_encode($v, JSON_UNESCAPED_UNICODE); break; default: if (is_array($v)) { if (count($v) == count($v, 1)) { $v = implode($this->glue, $v); } else { $v = json_encode($v, JSON_UNESCAPED_UNICODE); } } } $return[$k] = $v; } return $return; } }