1.前端数据渲染
<view class="list"><view>{{goodsitem.id}}</view><view>{{goodsitem.name}}</view><view>{{goodsitem.price}}</view><view>{{goodsitem.desc}}</view>
</view><view><view><input type="text" bindinput="speak" placeholder="请输入评论内容"/></view><button bindtap="formsubmit" data-pid="{{zero}}">发布评论</button>
</view><view><text style="font-size: 26px;color: brown;">评论</text><view wx:for="{{ data }}" wx:key="index"><view>{{item.speak}}<view wx:for="{{ item.sub }}" wx:key="index" wx:for-item="itemName" style="margin: 20rpx;background-color: bisque;">{{itemName.speak}}</view></view><view><input type="text" bindinput="speak" placeholder="请输入评论内容"/></view><button bindtap="formsubmit" data-pid="{{item.id}}">发布评论</button></view>
</view>
2.js页面
/*** 页面的初始数据*/data: {zero:0},/*** 生命周期函数--监听页面加载*/onLoad(options) {let that = thislet id = options.idwx.request({url: 'http://www.five.com/index.php/api/goodsitem', //仅为示例,并非真实的接口地址data: {id},header: {'content-type': 'application/json' // 默认值
},success:function(res) {let data = res.data.datalet goodsitem = res.data.goodsitemthat.setData({data:data,goodsitem:goodsitem})}})},speak(c){let speak = c.detail.valuethis.setData({speak:speak})},formsubmit(c){let that = thislet speak = this.data.speaklet pid = c.currentTarget.dataset.pidwx.request({url: 'http://www.five.com/index.php/api/addSpeak', //仅为示例,并非真实的接口地址method:'post',data: {speak:speak,uid:1,wid:wid,pid:pid},header: {'content-type': 'application/json' // 默认值},success (res) {if(res.data.code == 200){let data = res.data.datalet goodsitem = res.data.goodsitemthat.setData({data:data,goodsitem:goodsitem})}}})},
3.API后台接口
//详情信息public function goodsitem(){$id = \request()->get('id');$data = \App\Models\Goods::with(['Speak'])->where('id',$id)->first()->toArray();//调用递归方法$data = $this->subTree($data);//查询详情数据$goodsitem = \App\Models\Goods::with(['Speak'])->where('id',$id)->first()->toArray();return json_encode(['code' => 200,'msg' => '查询成功','data' => $data,'goodsitem' => $goodsitem]);}public function addSpeak(){$data = \request()->all()//评论添加入库Speak::insert($data);//评论后重新调用详情信息$id = $data['wid'];$data = \App\Models\Goods::with(['Speak'])->where('id',$id)->first()->toArray();//调用递归方法$data = $this->subTree($data);//查询详情数据$goodsitem = \App\Models\Goods::with(['Speak'])->where('id',$id)->first()->toArray();return json_encode(['code' => 200,'msg' => '评论成功','data' => $data,'goodsitem' => $goodsitem]);}public function subTree($data, $pid = 0) {// 返回的结果$arr = [];foreach ($data['speak'] as $val) {// 给定的PID是当前记录的上级IDif ($pid == $val['pid']) {// 递归$val['sub'] = $this->subTree($data,$val['id']);$arr[] = $val;}}return $arr;}
4.没有样式