今天做了一个关于添加商品的功能模块,需要实现的功能也算是比较简单的,但是在做到添加会员价格的时候遇到了一点满麻烦,麻烦原因就是商品的基本信息以及商品描述的数据添加同一张表中sp_goods ,但是会员价格这个需要添加到另外一张表中sp_member_price
那么如何实现将同一个表单中的数据添加到两张不同的数据表呢,先来看一下数据表:
sp_goods
sp_member_level
sp_member_price
一共有三张表,需要将会员价格的数据添加到会员表中,需要添加的数据有不同的会员等级所对应的不同商品的价格,
在这里会员价格那个页面的会员等级我是通过循环查询展示出来的
代码如下:
<!--会员价格-->
<div class="tab-pane" id="profile12">
<volist name="memlevels" id="vo">
<div class="form-group">
<label for="level_name" class="col-sm-2 control-label no-padding-right">{$vo.level_name}</label>
<div class="col-sm-6">
<input class="form-control" id="level_name" placeholder="" name="level_name[{$vo.id}]" type="text">
</div>
</div>
</volist>
在这里name值我使用的是数组,但是数组的键值我使用的是会员等级所对应的id值,
那么添加的会员价格的信息现在还差一个商品的id ,但是再添加会员价格的同时也在添加商品的价格,如何能够获取到商品的价格呢?
在这里我是用了tp的后置操作 代码如下:
// insert(钩子函数)
public function _after_insert(&$data,$options) {
// 将会员价格添加到会员价格表中(sp_member_price)
$memprice = D('memberPrice');
$level_name = I('level_name');
if($level_name) {
foreach($level_name as $k=>$v) {
if(trim($v) != '') {
$memprice->add(
array(
'price' => $v,
'level_id' => $k,
'goods_id' => $data['id']
)
);
}
}
}
}
也就是先在商品添加之后再添加会员价格的数据,这样就可以获得商品的id值了,
然后在执行添加会员价格信息的操作