Преглед изворни кода

文件上传增加withDeleteData允许用户设置请求参数,并在上传接口以及删除接口中增加主键字段

jqh пре 4 година
родитељ
комит
b54e54e001
4 измењених фајлова са 24 додато и 6 уклоњено
  1. 1 1
      src/Form/Field.php
  2. 2 2
      src/Form/Field/File.php
  3. 20 2
      src/Form/Field/WebUploader.php
  4. 1 1
      src/Form/NestedForm.php

+ 1 - 1
src/Form/Field.php

@@ -241,7 +241,7 @@ class Field implements Renderable
      *
      * @return $this
      */
-    public function setNestedFormRelation(array $options = [])
+    public function setRelation(array $options = [])
     {
         return $this;
     }

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

@@ -18,7 +18,7 @@ class File extends Field implements UploadFieldInterface
     {
         parent::__construct($column, $arguments);
 
-        $this->setupDefaultOptions();
+        $this->setUpDefaultOptions();
     }
 
     public function setElementName($name)
@@ -96,7 +96,7 @@ class File extends Field implements UploadFieldInterface
     /**
      * {@inheritDoc}
      */
-    public function setNestedFormRelation(array $options = [])
+    public function setRelation(array $options = [])
     {
         $this->options['formData']['_relation'] = [$options['relation'], $options['key']];
 

+ 20 - 2
src/Form/Field/WebUploader.php

@@ -146,7 +146,7 @@ trait WebUploader
     }
 
     /**
-     * 设置上传表单数.
+     * 设置上传表单请求参数.
      *
      * @param array $data
      *
@@ -159,6 +159,20 @@ trait WebUploader
         return $this;
     }
 
+    /**
+     * 设置删除图片请求参数.
+     *
+     * @param array $data
+     *
+     * @return $this
+     */
+    public function withDeleteData(array $data)
+    {
+        $this->options['deleteData'] = array_merge($this->options['deleteData'], $data);
+
+        return $this;
+    }
+
     /**
      * 是否开启自动上传.
      *
@@ -192,8 +206,10 @@ trait WebUploader
      *
      * @return void
      */
-    protected function setupDefaultOptions()
+    protected function setUpDefaultOptions()
     {
+        $key = optional($this->form)->getKey();
+
         $defaultOptions = [
             'name'                => WebUploaderHelper::FILE_NAME,
             'fileVal'             => WebUploaderHelper::FILE_NAME,
@@ -211,11 +227,13 @@ trait WebUploader
 
             'deleteData' => [
                 static::FILE_DELETE_FLAG => '',
+                'primary_key'            => $key,
             ],
             'formData' => [
                 '_id'           => Str::random(),
                 '_token'        => csrf_token(),
                 'upload_column' => $this->column(),
+                'primary_key'   => $key,
             ],
         ];
 

+ 1 - 1
src/Form/NestedForm.php

@@ -287,7 +287,7 @@ class NestedForm extends WidgetForm
             $field->attribute(Field::BUILD_IGNORE, true);
         }
 
-        $field->setNestedFormRelation([
+        $field->setRelation([
             'relation' => $this->relationName,
             'key'      => $this->key,
         ]);