Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
lightCMS
提交
b0e2b739
L
lightCMS
项目概览
OpenDocCN
/
lightCMS
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
L
lightCMS
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
b0e2b739
编写于
9月 20, 2019
作者:
孙
孙建华
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add: 新增模型时可选择是否新建数据库表
上级
d12b15d5
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
29 addition
and
7 deletion
+29
-7
app/Http/Controllers/Admin/EntityController.php
app/Http/Controllers/Admin/EntityController.php
+2
-1
app/Http/Controllers/Admin/EntityFieldController.php
app/Http/Controllers/Admin/EntityFieldController.php
+4
-3
app/Repository/Admin/EntityRepository.php
app/Repository/Admin/EntityRepository.php
+10
-1
resources/views/admin/entity/add.blade.php
resources/views/admin/entity/add.blade.php
+9
-0
resources/views/admin/entityField/add.blade.php
resources/views/admin/entityField/add.blade.php
+2
-0
tests/Feature/Admin/EntityControllerTest.php
tests/Feature/Admin/EntityControllerTest.php
+2
-2
未找到文件。
app/Http/Controllers/Admin/EntityController.php
浏览文件 @
b0e2b739
...
...
@@ -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'
=>
'新增成功'
,
...
...
app/Http/Controllers/Admin/EntityFieldController.php
浏览文件 @
b0e2b739
...
...
@@ -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
[
...
...
app/Repository/Admin/EntityRepository.php
浏览文件 @
b0e2b739
...
...
@@ -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
(
"数据库表已存在"
);
}
...
...
resources/views/admin/entity/add.blade.php
浏览文件 @
b0e2b739
...
...
@@ -20,6 +20,15 @@
<
input
type
=
"text"
name
=
"table_name"
required
lay
-
verify
=
"required"
autocomplete
=
"off"
class
=
"layui-input"
value
=
"{{
$model->table_name
?? '' }}"
placeholder
=
"模型对应的数据库表名称,保存后不能修改"
@
isset
(
$model
->
table_name
)
disabled
@
endisset
>
</
div
>
</
div
>
@
if
(
!
isset
(
$id
))
<
div
class
=
"layui-form-item"
>
<
label
class
=
"layui-form-label"
>
新建数据库表
</
label
>
<
div
class
=
"layui-input-inline"
style
=
"width: 50px;"
>
<
input
type
=
"checkbox"
name
=
"is_modify_db"
lay
-
skin
=
"switch"
lay
-
text
=
"是|否"
value
=
"1"
checked
>
</
div
>
<
div
class
=
"layui-form-mid layui-word-aux"
>
某些情况下可能数据库表已经通过其它方式建好
,
此处无需新建数据库表
,
添加模型主要是方便利用框架提供的模型增删改查功能
</
div
>
</
div
>
@
endif
<
div
class
=
"layui-form-item"
>
<
label
class
=
"layui-form-label"
>
描述
</
label
>
<
div
class
=
"layui-input-block"
>
...
...
resources/views/admin/entityField/add.blade.php
浏览文件 @
b0e2b739
...
...
@@ -55,6 +55,7 @@
<
input
type
=
"text"
name
=
"comment"
autocomplete
=
"off"
class
=
"layui-input"
value
=
"{{
$model->comment
?? '' }}"
>
</
div
>
</
div
>
@
if
(
!
isset
(
$id
))
<
div
class
=
"layui-form-item"
>
<
label
class
=
"layui-form-label"
>
变更表结构
</
label
>
<
div
class
=
"layui-input-inline"
style
=
"width: 50px;"
>
...
...
@@ -62,6 +63,7 @@
</
div
>
<
div
class
=
"layui-form-mid layui-word-aux"
>
某些情况下可能数据库表结构已经通过其它方式建好
,
此处无需操作数据库表
,
添加字段主要是方便利用框架提供的模型增删改查功能
</
div
>
</
div
>
@
endif
<
hr
>
<
div
class
=
"layui-form-item"
>
<
label
class
=
"layui-form-label"
>
表单名称
</
label
>
...
...
tests/Feature/Admin/EntityControllerTest.php
浏览文件 @
b0e2b739
...
...
@@ -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
();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录