listen = $listen; $this->goods_id = $goods_id; return $this; } /** * {@inheritdoc} */ public function render() { $this->addVariables(['listen' => $this->listen, 'goods_id' => $this->goods_id]); return parent::render(); } protected function prepareInputValue($value){ $goods_attrs = json_decode($value, true); // dd($goods_attrs); if(count($goods_attrs) > 1){ foreach($goods_attrs as $key => $goods_attr){ if(!isset($goods_attr['_remove_'])){ $goods_attr['_remove_'] = 0; } $goods_attrs[$key] = $goods_attr; } } return $goods_attrs; } protected function formatFieldData($data) { // 获取到当前字段值 $value = parent::formatFieldData($data); $select_attr_value = [ 'arr'=>[], 'arr2'=>[], 'goodsAttr'=>$value ]; $goods_attrs = []; foreach($value as $goods_attr){ $goods_attrs[$goods_attr['attr_id']][] = $goods_attr['attr_value']; } $type_attr = TypeAttr::where('type_id', $data['type_id'])->get()->toArray(); foreach($type_attr as $type_attr){ if(isset($goods_attrs[$type_attr['id']])){ $select_attr_value['arr'][] = [ 'attr_name'=>$type_attr['attr_name'], 'attr_id'=>$type_attr['id'] ]; $select_attr_value['arr2'][] = implode('
', $goods_attrs[$type_attr['id']]); } } // dd($select_attr_value); return json_encode($select_attr_value); } }