前台列表模板
<include file="public@header"/>
</head>
<body>
<div class="wrap js-check-wrap">
<ul class="nav nav-tabs">
<li class="active"><a href="javascript:;">所有商品</a></li>
<li><a href="{:url('AdminGoods/add')}">添加商品</a></li>
</ul>
<form class="well form-inline margin-top-20" method="post" action="{:url('AdminGoods/index')}">
所属分类:
<select class="form-control" name="cate_id" style="width: 140px;">
<option value='0'>全部</option>
<volist name="catelist" id="vo">
<option value="{$vo.id}" <php>if($vo['id'] == $cate_id){echo "selected";}</php>>{$vo.cate_name}</option>
</volist>
</select>
关键词:
<input type="text" class="form-control" name="keyword" style="width: 200px;"
value="{$keyword|default=''}" placeholder="商品名称">
<input type="submit" class="btn btn-primary" value="搜索"/>
<a class="btn btn-danger" href="{:url('AdminGoods/index')}">清空</a>
</form>
<form class="js-ajax-form" action="" method="post">
<!--<div class="table-actions">-->
<!--<button class="btn btn-primary btn-sm js-ajax-submit" type="submit"-->
<!--data-action="{:url('AdminGoods/recommend')}" data-subcheck="true">推荐-->
<!--</button>-->
<!--</div>-->
<table class="table table-hover table-bordered table-list">
<thead>
<tr>
<!--<th width="15">-->
<!--<label>-->
<!--<input type="checkbox" class="js-check-all" data-direction="x" data-checklist="js-check-x">-->
<!--</label>-->
<!--</th>-->
<th width="50">ID</th>
<th width="80">缩略图</th>
<th width="120">所属分类</th>
<th width="120">展示价格</th>
<th width="120">市场价格</th>
<th>商品名称</th>
<th>商品简介</th>
<th width="150">操作</th>
</tr>
</thead>
<foreach name="list" item="vo">
<tr>
<!--<td>-->
<!--<input type="checkbox" class="js-check" data-yid="js-check-y" data-xid="js-check-x" name="ids[]"-->
<!--value="{$vo.id}" title="ID:{$vo.id}">-->
<!--</td>-->
<td><b>{$vo.id}</b></td>
<td><img src="{:cmf_get_image_url($vo.goods_thumb)}" style="width: 30px;"></td>
<td>{$vo.cate_name}</td>
<td>¥{$vo.show_price}</td>
<td>¥{$vo.market_price}</td>
<td>{$vo.goods_name}</td>
<td>{$vo.shortcontent}</td>
<td>
<a href="{:url('AdminGoods/edit',array('id'=>$vo['id']))}">{:lang('EDIT')}</a> |
<a href="{:url('AdminGoods/delete',array('id'=>$vo['id']))}" class="js-ajax-delete">{:lang('DELETE')}</a>
</td>
</tr>
</foreach>
</table>
<ul class="pagination">{$page|default=''}</ul>
</form>
</div>
<script src="__STATIC__/js/admin.js"></script>
<script>
function reloadPage(win) {
win.location.reload();
}
$(function () {
setCookie("refersh_time", 0);
Wind.use('ajaxForm', 'artDialog', 'iframeTools', function () {
//批量复制
$('.js-articles-copy').click(function (e) {
var ids = [];
$("input[name='ids[]']").each(function () {
if ($(this).is(':checked')) {
ids.push($(this).val());
}
});
if (ids.length == 0) {
art.dialog.through({
id: 'error',
icon: 'error',
content: '您没有勾选信息,无法进行操作!',
cancelVal: '关闭',
cancel: true
});
return false;
}
ids = ids.join(',');
art.dialog.open("__ROOT__/index.php?g=portal&m=AdminArticle&a=copy&ids=" + ids, {
title: "批量复制",
width: "300px"
});
});
//批量移动
$('.js-articles-move').click(function (e) {
var ids = [];
$("input[name='ids[]']").each(function () {
if ($(this).is(':checked')) {
ids.push($(this).val());
}
});
if (ids.length == 0) {
art.dialog.through({
id: 'error',
icon: 'error',
content: '您没有勾选信息,无法进行操作!',
cancelVal: '关闭',
cancel: true
});
return false;
}
ids = ids.join(',');
art.dialog.open("__ROOT__/index.php?g=portal&m=AdminArticle&a=move&old_term_id={$term.term_id|default=0}&ids=" + ids, {
title: "批量移动",
width: "300px"
});
});
});
});
</script>
</body>
</html>
前台模板添加模板
<include file="public@header"/>
<style type="text/css">
.pic-list li {
margin-bottom: 5px;
}
</style>
<script type="text/html" id="photos-item-tpl">
<li id="saved-image{id}">
<input id="photo-{id}" type="hidden" name="thumb[]" value="{filepath}">
<img id="photo-{id}-preview" src="{url}" style="height:36px;width: 36px;"
onclick="imagePreviewDialog(this.src);">
<a href="javascript:uploadOneImage('图片上传','#photo-{id}');">替换</a>
<a href="javascript:(function(){$('#saved-image{id}').remove();})();">移除</a>
</li>
</script>
</head>
<body>
<div class="wrap js-check-wrap">
<ul class="nav nav-tabs">
<li><a href="{:url('AdminGoods/index')}">全部商品</a></li>
<li class="active"><a href="javascript:;">添加商品</a></li>
</ul>
<form action="{:url('AdminGoods/add')}" method="post" class="form-horizontal js-ajax-form margin-top-20">
<!--<form action="{:url('AdminGoods/add')}" method="post" class="form-horizontal margin-top-20">-->
<div class="row">
<div class="col-md-9">
<table class="table table-bordered">
<tr>
<th width="100">分类<span class="form-required">*</span></th>
<td>
<select name="cate" style="width:150px;" class="form-control">
<volist name="catelist" id="vo">
<option>{$vo.cate_name}</option>
</volist>
</select>
</td>
</tr>
<tr>
<th>商品名称<span class="form-required">*</span></th>
<td>
<input class="form-control" type="text" name="goods_name" required value=""/>
</td>
</tr>
<tr>
<th>市场价格<span class="form-required">*</span></th>
<td>
<input class="form-control" type="number" name="market_price" required value=""/>
</td>
</tr>
<tr>
<th>展示价格<span class="form-required">*</span></th>
<td>
<input class="form-control" type="number" name="show_price" required value=""/>
</td>
</tr>
<tr>
<th>商品简介</th>
<td>
<textarea class="form-control" name="shortcontent" style="height: 50px;"
placeholder="请填写摘要"></textarea>
</td>
</tr>
<tr>
<th>商品详情</th>
<td>
<script type="text/plain" id="content" name="content"></script>
</td>
</tr>
<tr>
<th>相册图集</th>
<td>
<ul id="photos" class="pic-list list-unstyled form-inline"></ul>
<a href="javascript:uploadMultiImage('图片上传','#photos','photos-item-tpl');"
class="btn btn-default btn-sm">选择图片</a>
</td>
</tr>
<tr>
<th>商品属性</th>
<td>
<a class="btn btn-default btn-sm" id="setDefault" style="margin-bottom: 8px;">设为默认</a>
<ul id="goodsatt" class="pic-list list-unstyled form-inline">
<li>
<input class="form-control" type="text" name="attkey_name[]" style="width: 150px;" placeholder="属性名称:如尺寸">
<input class="form-control" type="text" name="attvalue_name[]" style="width: 250px;" placeholder="M,L,XL,XXL">
<input class="form-control" type="text" name="sell_price[]" style="width: 250px;" placeholder="10,20,30,40">
<input class="form-control" type="text" name="stock[]" style="width: 250px;" placeholder="5,10,15,20">
</li>
</ul>
<!--<a class="btn btn-default btn-sm" id="addattr">添加属性</a>-->
</td>
</tr>
</table>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-primary js-ajax-submit">{:lang('ADD')}</button>
<!--<button type="submit" class="btn btn-primary">{:lang('ADD')}</button>-->
<a class="btn btn-default" href="{:url('AdminArticle/index')}">{:lang('BACK')}</a>
</div>
</div>
</div>
<div class="col-md-3">
<table class="table table-bordered">
<tr>
<th><b>缩略图</b></th>
</tr>
<tr>
<td>
<div style="text-align: center;">
<input type="hidden" name="goods_thumb" id="thumbnail" value="">
<a href="javascript:uploadOneImage('图片上传','#thumbnail');">
<img src="__TMPL__/public/assets/images/default-thumbnail.png"
id="thumbnail-preview"
width="135" style="cursor: pointer"/>
</a>
<input type="button" class="btn btn-sm btn-cancel-thumbnail" value="取消图片">
</div>
</td>
</tr>
<tr>
<th><b>是否上架</b></th>
</tr>
<tr>
<td>
<input type="radio" name="if_shelf" value="1" checked>是
<input type="radio" name="if_shelf" value="0">否
</td>
</tr>
</table>
</div>
</div>
</form>
</div>
<script type="text/javascript" src="__STATIC__/js/admin.js"></script>
<script type="text/javascript">
//编辑器路径定义
var editorURL = GV.WEB_ROOT;
</script>
<script type="text/javascript" src="__STATIC__/js/ueditor/ueditor.config.js"></script>
<script type="text/javascript" src="__STATIC__/js/ueditor/ueditor.all.min.js"></script>
<script type="text/javascript">
$(function () {
editorcontent = new baidu.editor.ui.Editor();
editorcontent.render('content');
try {
editorcontent.sync();
} catch (err) {
}
$('.btn-cancel-thumbnail').click(function () {
$('#thumbnail-preview').attr('src', '__TMPL__/public/assets/images/default-thumbnail.png');
$('#thumbnail').val('');
});
});
function doSelectCategory() {
var selectedCategoriesId = $('#js-categories-id-input').val();
openIframeLayer("{:url('AdminCategory/select')}?ids=" + selectedCategoriesId, '请选择分类', {
area: ['700px', '400px'],
btn: ['确定', '取消'],
yes: function (index, layero) {
//do something
var iframeWin = window[layero.find('iframe')[0]['name']];
var selectedCategories = iframeWin.confirm();
if (selectedCategories.selectedCategoriesId.length == 0) {
layer.msg('请选择分类');
return;
}
$('#js-categories-id-input').val(selectedCategories.selectedCategoriesId.join(','));
$('#js-categories-name-input').val(selectedCategories.selectedCategoriesName.join(' '));
//console.log(layer.getFrameIndex(index));
layer.close(index); //如果设定了yes回调,需进行手工关闭
}
});
}
//添加属性
$('#addattr').click(function () {
var html = `<li>
<input class="form-control" type="text" name="attkey_name[]" style="width: 150px;" placeholder="属性名称:如尺寸">
<input class="form-control" type="text" name="attvalue_name[]" style="width: 250px;" placeholder="M,L,XL,XXL">
<input class="form-control" type="text" name="sell_price[]" style="width: 250px;" placeholder="10,20,30,40">
<input class="form-control" type="text" name="stock[]" style="width: 250px;" placeholder="5,10,15,20">
<a onclick="$(this).parent().remove()" style="cursor:pointer">移除</a>
</li>`;
$('#goodsatt').append(html);
})
//设为默认属性
$('#setDefault').click(function () {
var defaultHtml = `<li>
<input class="form-control" type="text" name="attkey_name[]" style="width: 150px;" value="规格" readonly>
<input class="form-control" type="text" name="attvalue_name[]" style="width: 250px;" value="默认" readonly>
<input class="form-control" type="text" name="sell_price[]" style="width: 250px;" value="100">
<input class="form-control" type="text" name="stock[]" style="width: 250px;" value="100">
</li>`;
$('#goodsatt').html(defaultHtml);
$('#setDefault').remove();
})
</script>
</body>
</html>
前台编辑模板
<include file="public@header"/>
<style type="text/css">
.pic-list li {
margin-bottom: 5px;
}
</style>
<script type="text/html" id="photos-item-tpl">
<li id="saved-image{id}">
<input id="photo-{id}" type="hidden" name="banner[]" value="{filepath}">
<img id="photo-{id}-preview" src="{url}" style="height:36px;width: 36px;"
onclick="imagePreviewDialog(this.src);">
<a href="javascript:uploadOneImage('图片上传','#photo-{id}');">替换</a>
<a href="javascript:(function(){$('#saved-image{id}').remove();})();">移除</a>
</li>
</script>
</head>
<body>
<div class="wrap js-check-wrap">
<ul class="nav nav-tabs">
<li><a href="{:url('AdminGoods/index')}">全部商品</a></li>
<li class="active"><a href="javascript:;">商品详情</a></li>
</ul>
<!--<form action="{:url('AdminGoods/add')}" method="post" class="form-horizontal js-ajax-form margin-top-20">-->
<form action="{:url('AdminGoods/add')}" method="post" class="form-horizontal margin-top-20">
<div class="row">
<div class="col-md-9">
<table class="table table-bordered">
<tr>
<th width="100">分类<span class="form-required">*</span></th>
<td>
<select name="cate" style="width:150px;" class="form-control">
<volist name="catelist" id="vo">
<option value="{$vo.id}" <if condition="$info['cate_id'] eq $vo['id']" >selected</if>>{$vo.cate_name}</option>
</volist>
</select>
</td>
</tr>
<tr>
<th>商品名称<span class="form-required">*</span></th>
<td>
<input class="form-control" type="text" name="goods_name" required value="{$info.goods_name}"/>
</td>
</tr>
<tr>
<th>市场价格<span class="form-required">*</span></th>
<td>
<input class="form-control" type="number" name="market_price" required value="{$info.market_price}"/>
</td>
</tr>
<tr>
<th>展示价格<span class="form-required">*</span></th>
<td>
<input class="form-control" type="number" name="show_price" required value="{$info.show_price}"/>
</td>
</tr>
<tr>
<th>商品简介</th>
<td>
<textarea class="form-control" name="shortcontent" style="height: 50px;"
placeholder="请填写摘要">{$info.shortcontent}</textarea>
</td>
</tr>
<tr>
<th>商品详情</th>
<td>
<script type="text/plain" id="content" name="content">{$info.content}</script>
</td>
</tr>
<tr>
<th>相册图集</th>
<td>
<ul id="photos" class="pic-list list-unstyled form-inline">
<foreach name="info.goods_banner" item="vo">
<php>$img_url=cmf_get_image_preview_url($vo);</php>
<li id="saved-image{$key}">
<input id="photo-{$key}" type="hidden" name="banner[]"
value="{$vo}">
<img id="photo-{$key}-preview"
src="{:cmf_get_image_preview_url($vo)}"
style="height:36px;width: 36px;"
onclick="parent.imagePreviewDialog(this.src);">
<a href="javascript:uploadOneImage('图片上传','#photo-{$key}');">替换</a>
<a href="javascript:(function(){$('#saved-image{$key}').remove();})();">移除</a>
</li>
</foreach>
</ul>
<a href="javascript:uploadMultiImage('图片上传','#photos','photos-item-tpl');"
class="btn btn-default btn-sm">选择图片</a>
</td>
</tr>
<tr>
<th>商品属性</th>
<td>
<ul id="goodsatt" class="pic-list list-unstyled form-inline">
<volist name="list" id="vo" key="k">
<li>
<input class="form-control" type="text" name="attkey_name[]" value="{$vo.attkey_name}" style="width: 150px;" placeholder="属性名称:如尺寸" required>
<input class="form-control" type="text" name="attvalue_name[]" value="{$vo.str_attvalue_name}" style="width: 250px;" placeholder="M,L,XL,XXL" required>
<input class="form-control" type="text" name="sell_price[]" value="{$vo.str_sell_price}" style="width: 250px;" placeholder="售卖价格" required>
<input class="form-control" type="text" name="stock[]" value="{$vo.str_stock}" style="width: 250px;" placeholder="库存" required>
<if condition="$k neq 1">
<a onclick="$(this).parent().remove()" style="cursor:pointer">移除</a>
</if>
</li>
</volist>
</ul>
<!--<a class="btn btn-default btn-sm" id="addattr">添加属性</a>-->
</td>
</tr>
</table>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<!--<button type="submit" class="btn btn-primary js-ajax-submit">更新</button>-->
<button type="submit" class="btn btn-primary">更新</button>
<a class="btn btn-default" href="{:url('AdminGoods/index')}">{:lang('BACK')}</a>
</div>
</div>
</div>
<div class="col-md-3">
<table class="table table-bordered">
<tr>
<th><b>缩略图</b></th>
</tr>
<tr>
<td>
<div style="text-align: center;">
<input type="hidden" name="info[goods_thumb]" id="thumbnail"
value="{$post.more.thumbnail|default=''}">
<a href="javascript:uploadOneImage('图片上传','#thumbnail');">
<img src="{:cmf_get_image_preview_url($info.goods_thumb)}"
id="thumbnail-preview"
width="135" style="cursor: pointer"/>
</a>
<input type="button" class="btn btn-sm btn-cancel-thumbnail" value="取消图片">
</div>
</td>
</tr>
<!--<tr>-->
<!--<th><b>是否上架</b></th>-->
<!--</tr>-->
<!--<tr>-->
<!--<td>-->
<!--<input type="radio" name="if_shelf" value="1" checked>是 -->
<!--<input type="radio" name="if_shelf" value="0">否-->
<!--</td>-->
<!--</tr>-->
</table>
</div>
</div>
</form>
</div>
<script type="text/javascript" src="__STATIC__/js/admin.js"></script>
<script type="text/javascript">
//编辑器路径定义
var editorURL = GV.WEB_ROOT;
</script>
<script type="text/javascript" src="__STATIC__/js/ueditor/ueditor.config.js"></script>
<script type="text/javascript" src="__STATIC__/js/ueditor/ueditor.all.min.js"></script>
<script type="text/javascript">
$(function () {
editorcontent = new baidu.editor.ui.Editor();
editorcontent.render('content');
try {
editorcontent.sync();
} catch (err) {
}
$('.btn-cancel-thumbnail').click(function () {
$('#thumbnail-preview').attr('src', '__TMPL__/public/assets/images/default-thumbnail.png');
$('#thumbnail').val('');
});
});
function doSelectCategory() {
var selectedCategoriesId = $('#js-categories-id-input').val();
openIframeLayer("{:url('AdminCategory/select')}?ids=" + selectedCategoriesId, '请选择分类', {
area: ['700px', '400px'],
btn: ['确定', '取消'],
yes: function (index, layero) {
//do something
var iframeWin = window[layero.find('iframe')[0]['name']];
var selectedCategories = iframeWin.confirm();
if (selectedCategories.selectedCategoriesId.length == 0) {
layer.msg('请选择分类');
return;
}
$('#js-categories-id-input').val(selectedCategories.selectedCategoriesId.join(','));
$('#js-categories-name-input').val(selectedCategories.selectedCategoriesName.join(' '));
//console.log(layer.getFrameIndex(index));
layer.close(index); //如果设定了yes回调,需进行手工关闭
}
});
}
//添加属性
$('#addattr').click(function () {
var html = `<li>
<input class="form-control" type="text" name="attkey_name[]" style="width: 150px;" placeholder="属性名称:如尺寸">
<input class="form-control" type="text" name="attvalue_name[]" style="width: 250px;" placeholder="M,L,XL,XXL">
<input class="form-control" type="text" name="sell_price[]" style="width: 250px;" placeholder="10,20,30,40">
<input class="form-control" type="text" name="stock[]" style="width: 250px;" placeholder="5,10,15,20">
<a onclick="$(this).parent().remove()" style="cursor:pointer">移除</a>
</li>`;
$('#goodsatt').append(html);
})
//设为默认属性
$('#setDefault').click(function () {
var defaultHtml = `<li>
<input class="form-control" type="text" name="attkey_name[]" style="width: 150px;" value="规格" readonly>
<input class="form-control" type="text" name="attvalue_name[]" style="width: 250px;" value="默认" readonly>
<input class="form-control" type="text" name="sell_price[]" style="width: 250px;" value="100">
<input class="form-control" type="text" name="stock[]" style="width: 250px;" value="100">
</li>`;
$('#goodsatt').html(defaultHtml);
$('#setDefault').remove();
})
</script>
</body>
</html>
后台列表查询操作
/**
* 商品列表
*/
public function index()
{
$where = [];
$cate_id = $this->request->param('cate_id','','intval');
$keyword = $this->request->param('keyword','');
if(!empty($cate_id)){
$where['c.id'] = $cate_id;
}
if(!empty($keyword)){
$where['g.goods_name'] = ['like',"%$keyword%"];
}
$cate = new CateModel();
$goods = new GoodsModel();
$list = $goods
->alias('g')
->field('g.*,c.cate_name')
->join('__CATE__ c','g.cate_id = c.id')
->order('g.id DESC')
->where($where)
->paginate(20);
$catelist = $cate->select();
$this->assign('catelist',$catelist);
$this->assign('page',$list->render());
$this->assign('list',$list);
$this->assign('cate_id',empty($cate_id)?'':$cate_id);
$this->assign('keyword',empty($keyword)?'':$keyword);
return $this->fetch();
}
后台模板添加操作
/**
* 添加商品
*/
public function add()
{
if($this->request->isPost()){
$param = $this->request->param();
$data_goods = [
'cate_id' => $param['cate'],
'goods_name' => $param['goods_name'],
'goods_thumb' => $param['goods_thumb'],
'goods_banner' => empty($param['thumb'])?'':json_encode($param['thumb']),
'shortcontent' => $param['shortcontent'],
'content' => empty($param['content'])?'':$param['content'],
'market_price' => $param['market_price'],
'show_price' => $param['show_price'],
'create_time' => time(),
];
$goods = new GoodsModel();
$attkey = new GoodsAttkeyModel();
$attvalue = new GoodsAttvalueModel();
Db::startTrans();
$res1 = $goods_id = $goods->insertGetId($data_goods);
foreach ($param['attkey_name'] as $k=>$v){
$res2 = $goods_attkey_id = $attkey->insertGetId([
'goods_id' => $goods_id,
'attkey_name' => $v
]);
if(!$res2){
Db::rollback();
$this->error('信息不正确');
}
$valuelist = explode(',',$param['attvalue_name'][$k]);
$value_sell_price = explode(',',$param['sell_price'][$k]);
$value_stock = explode(',',$param['stock'][$k]);
foreach ($valuelist as $kk=>$vv){
$res3 = $attvalue-> insert([
'goods_attkey_id' => $goods_attkey_id,
'attvalue_name' => $vv,
'sell_price' => $value_sell_price[$kk],
'stock' => $value_stock[$kk]
]);
if(!$res3){
Db::rollback();
$this->error('信息不正确');
}
}
}
if(!$res1){
Db::rollback();
$this->error('信息不正确');
}
Db::commit();
$this->success('添加成功');
}else{
$cate = new CateModel();
$catelist = $cate->select();
$this->assign('catelist',$catelist);
return $this->fetch();
}
}
后台编辑模板
/**
* 编辑
*/
public function edit()
{
if($this->request->isPost()){
$param = $this->request->param();
$data_goods = [
'id' => $param['id'],
'goods_name' => $param['goods_name'],
'cate_id' => $param['cate'],
'goods_thumb' => $param['goods_thumb'],
'goods_banner' => empty($param['goods_banner'])?'':json_encode($param['goods_banner']),
'shortcontent' => $param['shortcontent'],
'content' => empty($param['content'])?'':$param['content'],
'market_price' => $param['market_price'],
'show_price' => $param['show_price'],
'create_time' => time(),
'if_del' => 0
];
$goods = new GoodsModel();
$attkey = new GoodsAttkeyModel();
$attvalue = new GoodsAttvalueModel();
Db::startTrans();
$arr_goods_attkey_id = $attkey->where('goods_id',$param['id'])->column('id');
$arr_goods_attvalue_id = $attvalue->where('goods_attkey_id','in',$arr_goods_attkey_id)->column('id');
$res1 = $attkey->where('id','in',$arr_goods_attkey_id)->delete();
$res2 = $attvalue->where('id','in',$arr_goods_attvalue_id)->delete();
$res3 = $goods->update($data_goods);
if(!$res1 or !$res2 or !$res3){
Db::rollback();
$this->error('信息填写错误');
}
foreach ($param['attkey_name'] as $k=>$v){
$res4 = $goods_attkey_id = $attkey->insertGetId([
'goods_id' => $param['id'],
'attkey_name' => $v,
]);
if(!$res4){
Db::rollback();
$this->error('信息填写不正确');
}
$valuelist = explode(',',$param['attvalue_name'][$k]);
$value_sell_price = explode(',',$param['sell_price'][$k]);
$value_stock = explode(',',$param['stock'][$k]);
foreach ($valuelist as $kk=>$vv){
$res5 = $attvalue-> insert([
'goods_attkey_id' => $goods_attkey_id,
'attvalue_name' => $vv,
'sell_price' => $value_sell_price[$kk],
'stock' => $value_stock[$kk]
]);
if(!$res5){
Db::rollback();
$this->error('信息填写不正确');
}
}
}
Db::commit();
$this->success('更新成功');
}else{
$id = $this->request->param('id','','intval');
$cate = new CateModel();
$goods = new GoodsModel();
$goods_attkey = new GoodsAttkeyModel();
$goods_attvalue = new GoodsAttvalueModel();
$info = $goods->find($id)->toArray();
$info['content'] = htmlspecialchars_decode($info['content']);
$info['goods_banner'] = json_decode($info['goods_banner'],true);
$list = $goods_attkey->where('goods_id',$info['id'])->select()->toArray();
foreach ($list as $k=>$v){
$info_val = $goods_attvalue->where('goods_attkey_id',$v['id'])->column('attvalue_name');
$list[$k]['str_attvalue_name'] = implode(',',$info_val);
$info_val2 = $goods_attvalue->where('goods_attkey_id',$v['id'])->column('sell_price');
$list[$k]['str_sell_price'] = implode(',',$info_val2);
$info_val3 = $goods_attvalue->where('goods_attkey_id',$v['id'])->column('stock');
$list[$k]['str_stock'] = implode(',',$info_val3);
}
$catelist = $cate->select();
$this->assign('catelist',$catelist);
$this->assign('info',$info);
$this->assign('list',$list);
return $this->fetch();
}
}
后台删除模板
/**
* 删除
*/
public function delete()
{
$goods_id = $this->request->param('id','','intval');
$goods = new GoodsModel();
$goods_attkey = new GoodsAttkeyModel();
$goods_attvalue = new GoodsAttvalueModel();
$attkey_id = $goods_attkey->where('goods_id',$goods_id)->value('id');
Db::startTrans();
$res = $goods->where('id',$goods_id)->delete();
$res2 = $goods_attkey->where('goods_id',$goods_id)->delete();
$res3 = $goods_attvalue->where('goods_attkey_id',$attkey_id)->delete();
if(!$res or !$res2 or !$res3){
Db::rollback();
}
Db::commit();
$this->success('删除成功');
}
数据库文件
sql文件下载地址