diff --git a/app/Http/Controllers/Admin/EntityController.php b/app/Http/Controllers/Admin/EntityController.php index 52b63e7199446cf2bf83feb9bf71c54ec7d0c249..a44c06152e377a16bc3896201482f578dc561fa1 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 a97e086ea9dc45eac6f366ad7a51b3e902eb8ecc..eae601bf55e9d438453df641881637af1bc51a82 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 33df35c075e25ee88ee8df04f6fc099e766fd0b8..448e54d6177b393197e65e8620f81c174b756543 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 7f0a22b71e5e16170058d1e49bfbbe0dd3902920..bf539c88a44818270093c2db53098dfdce5f9cff 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)) +