规格属性的添加(例如:颜色、尺寸、型号。。。。。)
点击SKU属性值后出现
属性值添加的是: 红色,黄色 / 14寸,15寸
就是下面的代码(添加的表单)
<form enctype="multipart/form-data" action="{:url('goods/attr')}" method="post" name="theForm">
<!-- 通用信息 -->
<table width="90%" id="general-table" align="center" style="display: table;">
<tbody>
<tr>
<td>属性名称:</td>
<td>属性值:</td>
</tr>
{volist name="arr" id="v"}
<tr>
<td>{$v.attr_name}</td>
<td> <!--值为二维数组-->
<input type="text" name="value_name[{$v.attr_id}]" maxlength="20" value="" size="27">
</td>
</tr>{/volist}
</tbody></table>
<div class="button-div">
<input type="submit" value=" 确定 " class="button">
<input type="reset" value=" 重置 " class="button">
</div>
<input type="hidden" value="{$data.id}" name="goods_id">
</form>
实例化表a是商品表(上图)
attr的数据表(上图)
规格属性的添加(控制器)
//属性值的页面
public function attr()
{
if(Request::instance()->isGet()) {
//商品id
$id=input('get.id');
if(!$id){
$this->error('商品ID不能为空');
}
//此商品的详细信息
$goods=a::get($id);
if(!$goods){
$this->error('商品的信息不能为空');
}
//在详细的商品信息中找到 商品的分类id
$cat_id=$goods['cat_id'];
//通过商品的分类id 查询规格表(就是该商品拥有的属性)
$attr=Attr::where('cat_id',$cat_id)->select();
return view('attr',['arr'=>$attr,'data'=>$goods]);
}else{
//接收所有的值
$arr=input('post.');
//接收商品id
$goods_id=input('post.goods_id');
$result=[];
//循环属性值
foreach($arr['value_name'] as $k => $v){
//知添加一个数据时 (有为空的情况)
if(empty($v))continue;
//接收的字符串 分割成数组
$var=explode(',',$v);
foreach($var as $vv){
$data=[];
$data['goods_id']=$goods_id;
$data['attr_id']=$k;
$data['value_name']=$vv;
$result[]=$data;
}
}
// print_r($result);die;
$user= new Value();
$res=$user->saveAll($result);
if($res){
$this->success('商品属性添加成功','goods_list');
}else{
$this->error('商品属性添加失败');
}
}
}
接收到所有数据:打印出的结果 $arr的数据
$var打印出的数据
属性值循环:处理之后的结果