From b0e2b739096a3529a425c0d4c052a1100b8dbe66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=BB=BA=E5=8D=8E?= Date: Fri, 20 Sep 2019 15:17:55 +0800 Subject: [PATCH] =?UTF-8?q?add:=20=E6=96=B0=E5=A2=9E=E6=A8=A1=E5=9E=8B?= =?UTF-8?q?=E6=97=B6=E5=8F=AF=E9=80=89=E6=8B=A9=E6=98=AF=E5=90=A6=E6=96=B0?= =?UTF-8?q?=E5=BB=BA=E6=95=B0=E6=8D=AE=E5=BA=93=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/Admin/EntityController.php | 3 ++- app/Http/Controllers/Admin/EntityFieldController.php | 7 ++++--- app/Repository/Admin/EntityRepository.php | 11 ++++++++++- resources/views/admin/entity/add.blade.php | 9 +++++++++ resources/views/admin/entityField/add.blade.php | 2 ++ tests/Feature/Admin/EntityControllerTest.php | 4 ++-- 6 files changed, 29 insertions(+), 7 deletions(-) diff --git a/app/Http/Controllers/Admin/EntityController.php b/app/Http/Controllers/Admin/EntityController.php index 52b63e7..a44c061 100644 --- a/app/Http/Controllers/Admin/EntityController.php +++ b/app/Http/Controllers/Admin/EntityController.php @@ -73,7 +73,8 @@ class EntityController extends Controller public function save(EntityRequest $request) { try { - EntityRepository::add($request->only($this->formNames)); + $createDB = $request->post('is_modify_db', false); + EntityRepository::add($request->only($this->formNames), $createDB); return [ 'code' => 0, 'msg' => '新增成功', diff --git a/app/Http/Controllers/Admin/EntityFieldController.php b/app/Http/Controllers/Admin/EntityFieldController.php index a97e086..eae601b 100644 --- a/app/Http/Controllers/Admin/EntityFieldController.php +++ b/app/Http/Controllers/Admin/EntityFieldController.php @@ -25,7 +25,7 @@ class EntityFieldController extends Controller protected $formNames = [ 'name', 'type', 'comment', 'form_name', 'form_type', 'is_show', 'is_edit', 'is_required', 'form_comment', 'entity_id', 'field_length', 'field_total', 'field_scale', 'order', 'form_params', - 'default_value', 'is_show_inline', 'is_modify_db' + 'default_value', 'is_show_inline' ]; public function __construct() @@ -108,7 +108,8 @@ class EntityFieldController extends Controller ]; } - if (isset($data['is_modify_db'])) { + $modifyDB = $request->post('is_modify_db', false); + if ($modifyDB) { Schema::table($table->table_name, function (Blueprint $table) use ($data) { $m = $data['type']; $length = intval($data['field_length']); @@ -138,7 +139,7 @@ class EntityFieldController extends Controller }); } - unset($data['field_length'], $data['field_total'], $data['field_scale'], $data['is_modify_db']); + unset($data['field_length'], $data['field_total'], $data['field_scale']); EntityFieldRepository::add($data); return [ diff --git a/app/Repository/Admin/EntityRepository.php b/app/Repository/Admin/EntityRepository.php index 33df35c..448e54d 100644 --- a/app/Repository/Admin/EntityRepository.php +++ b/app/Repository/Admin/EntityRepository.php @@ -43,11 +43,20 @@ class EntityRepository /** * 新增模型 + * + * @param array $data + * @param mixed $createDB + * @throws CreateTableException|\Exception + * @return Entity */ - public static function add($data) + public static function add($data, $createDB = true) { $entity = Entity::query()->create($data); try { + if (!$createDB) { + return $entity; + } + if (Schema::hasTable($data['table_name'])) { throw new \RuntimeException("数据库表已存在"); } diff --git a/resources/views/admin/entity/add.blade.php b/resources/views/admin/entity/add.blade.php index 7f0a22b..bf539c8 100644 --- a/resources/views/admin/entity/add.blade.php +++ b/resources/views/admin/entity/add.blade.php @@ -20,6 +20,15 @@ table_name) disabled @endisset> + @if(!isset($id)) +
+ +
+ +
+
某些情况下可能数据库表已经通过其它方式建好,此处无需新建数据库表,添加模型主要是方便利用框架提供的模型增删改查功能
+
+ @endif
diff --git a/resources/views/admin/entityField/add.blade.php b/resources/views/admin/entityField/add.blade.php index cc32d84..92d41ce 100644 --- a/resources/views/admin/entityField/add.blade.php +++ b/resources/views/admin/entityField/add.blade.php @@ -55,6 +55,7 @@
+ @if(!isset($id))
@@ -62,6 +63,7 @@
某些情况下可能数据库表结构已经通过其它方式建好,此处无需操作数据库表,添加字段主要是方便利用框架提供的模型增删改查功能
+ @endif
diff --git a/tests/Feature/Admin/EntityControllerTest.php b/tests/Feature/Admin/EntityControllerTest.php index d702d03..8e7e7e4 100644 --- a/tests/Feature/Admin/EntityControllerTest.php +++ b/tests/Feature/Admin/EntityControllerTest.php @@ -35,7 +35,7 @@ class EntityControllerTest extends TestCase public function testEntityCanBeCreated() { - $data = ['name' => '测试', 'table_name' => 'tests']; + $data = ['name' => '测试', 'table_name' => 'tests', 'is_modify_db' => 1]; $response = $this->actingAs($this->user, 'admin') ->post('/admin/entities', $data); $response->assertJson(['code' => 0]); @@ -47,7 +47,7 @@ class EntityControllerTest extends TestCase public function testEntityBeCreatedWhenTableHasExists() { - $data = ['name' => '测试', 'table_name' => 'tests']; + $data = ['name' => '测试', 'table_name' => 'tests', 'is_modify_db' => 1]; Schema::create($data['table_name'], function (Blueprint $table) { $table->increments('id'); $table->timestamps(); -- GitLab