摘要:系统模块总结. 系统模块建表用keys=>values方式创建数据表,然后将前端数据,以json格式存入数据表中.前端页面save方法创建两个对象,用来存储数据,将数据传输到后台控制器中进行存储,然后将对象转换为json数据,传入数据表,根据names查询数据表中是否有数据来确定是更新还是新增public function s
系统模块总结.
系统模块建表用keys=>values方式创建数据表,然后将前端数据,以json格式存入数据表中.
前端页面save方法创建两个对象,用来存储数据,将数据传输到后台控制器中进行存储,然后将对象转换为json数据,传入数据表,根据names查询数据表中是否有数据来确定是更新还是新增
public function save()
{
//接受names数值,也就是表中names的值
$data['names'] = input('post.names');
//接收values值(对象),将对象转换为json数据
$data['values'] = json_encode(input('post.values'));
//判断表中是否有此数据,有则是更新数据,没有则是新增数据
$item = SysDb::table('setting')->where(['names'=>$data['names']])->item();
if($item){
SysDb::table('setting')->where(['names'=>$data['names']])->update($data);
}else{
SysDb::table('setting')->insert($data);
}
exit(json_encode(['res'=>0,'msg'=>'保存成功']));
}<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<link rel="stylesheet" href="/static/plugins/layui/css/layui.css">
<script src="/static/plugins/layui/layui.js"></script>
</head>
<body style="padding: 10px;">
<form action="" class="layui-form">
<div class="layui-form-item">
<label for="" class="layui-form-label">网站名称</label>
<div class="layui-input-inline">
<input type="text" class="layui-input" name="title" value="{$data.values.title}">
</div>
</div>
<div class="layui-form-item">
<label for="" class="layui-form-label">关键字</label>
<div class="layui-input-inline">
<input type="text" class="layui-input" name="key" value="{$data.values.key}">
</div>
</div>
<div class="layui-form-item">
<label for="" class="layui-form-label">网站描述</label>
<div class="layui-input-inline">
<input type="text" class="layui-input" name="desc" value="{$data.values.desc}">
</div>
</div>
</form>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" onclick="save()">保存</button>
</div>
</div>
<script>
layui.use(['layer'],function () {
layer = layui.layer;
$ = layui.jquery;
})
function save() {
var title = $.trim($('input[name="title"]').val());
if(title==''){
layer.msg('网站名称不能为空',{'icon':2});
return;
}
let data = new Object();
data.names = 'site_setting';
let value = new Object(); //存储表单中的值
value.title = title; //对象属性存储值
value.key = $('input[name="key"]').val();//对象属性存储值
value.desc = $('input[name="desc"]').val();//对象属性存储值
data.values = value; //传到后台的值创建一个属性,存入表单的值
$.post('/index.php/admins/setting/save',data,function (data) {
if(data.res==0){
layer.msg(data.msg,{'icon':1});
setTimeout(function () {window.location.reload()},1500)
}else{
layer.msg(data.msg,{'icon':2});
}
},'json')
}
</script>
</body>
</html>渲染值到模板
首先查询表中的值,然后将表中的values的值转换为数组json_decode(),然后将其值模板赋值输出.
public function index()
{
//查询对应的数据
$data = SysDb::table('setting')->where(['names'=>'site_setting'])->item();
//查询成功将values值转换为数组进行模板遍历
if($data){
$data['values'] = json_decode($data['values'],true);
}
// dump($data);
$this->view->assign('data',$data);
return $this->view->fetch();
}
批改老师:韦小宝批改时间:2018-12-29 09:15:27
老师总结:写的还是很不错的,很详细,系统设置还是蛮简单的,写的很棒!继续加油吧!