Explorar o código

表单编辑数据显示兼容驼峰风格的关联关系名称

jqh %!s(int64=4) %!d(string=hai) anos
pai
achega
5dbe5d7967

+ 20 - 8
src/Form/Field.php

@@ -336,19 +336,31 @@ class Field implements Renderable
             $value = [];
 
             foreach ($this->column as $key => $column) {
-                $column = $this->normalizeColumn($column);
-
-                if (Arr::has($data, $column)) {
-                    $value[$key] = Arr::get($data, $column);
-                } else {
-                    $value[$key] = Arr::get($data, Str::snake($column));
-                }
+                $value[$key] = $this->getValueFromData($data, $this->normalizeColumn($column));
             }
 
             return $value;
         }
 
-        return Arr::get($data, $this->normalizeColumn(), $this->value);
+        return $this->getValueFromData($data, null, $this->value);
+    }
+
+    /**
+     * @param array $data
+     * @param string $column
+     * @param mixed $default
+     *
+     * @return mixed
+     */
+    protected function getValueFromData($data, $column = null, $default = null)
+    {
+        $column = $column ?: $this->normalizeColumn();
+
+        if (Arr::has($data, $column)) {
+            return Arr::get($data, $column, $default);
+        }
+
+        return Arr::get($data, Str::snake($column), $default);
     }
 
     protected function normalizeColumn(?string $column = null)

+ 1 - 1
src/Form/Field/File.php

@@ -120,7 +120,7 @@ class File extends Field implements UploadFieldInterface
 
     protected function formatFieldData($data)
     {
-        return Helper::array(Arr::get($data, $this->normalizeColumn()));
+        return Helper::array($this->getValueFromData($data));
     }
 
     /**

+ 1 - 1
src/Form/Field/KeyValue.php

@@ -17,7 +17,7 @@ class KeyValue extends Field
     {
         $this->data = $data;
 
-        return Helper::array(Arr::get($data, $this->normalizeColumn(), $this->value));
+        return Helper::array($this->getValueFromData($data, null, $this->value));
     }
 
     /**

+ 1 - 1
src/Form/Field/ListField.php

@@ -60,7 +60,7 @@ class ListField extends Field
     {
         $this->data = $data;
 
-        return Helper::array(Arr::get($data, $this->normalizeColumn(), $this->value));
+        return Helper::array($this->getValueFromData($data, null, $this->value));
     }
 
     /**

+ 1 - 1
src/Form/Field/MultipleSelect.php

@@ -9,7 +9,7 @@ class MultipleSelect extends Select
 {
     protected function formatFieldData($data)
     {
-        return Helper::array(Arr::get($data, $this->normalizeColumn()));
+        return Helper::array($this->getValueFromData($data));
     }
 
     protected function prepareInputValue($value)

+ 1 - 1
src/Form/Field/Tags.php

@@ -40,7 +40,7 @@ class Tags extends Field
      */
     protected function formatFieldData($data)
     {
-        $value = Arr::get($data, $this->normalizeColumn());
+        $value = $this->getValueFromData($data);
 
         if (is_array($value) && $this->keyAsValue) {
             $value = array_column($value, $this->visibleColumn, $this->key);

+ 1 - 1
src/Form/Field/Tree.php

@@ -222,7 +222,7 @@ class Tree extends Field
 
     protected function formatFieldData($data)
     {
-        return Helper::array(Arr::get($data, $this->normalizeColumn()), true);
+        return Helper::array($this->getValueFromData($data), true);
     }
 
     protected function prepareInputValue($value)