'json', 'tech_param' => 'json', 'cad_model' => 'json', 'cad_design' => 'json', 'su_model' => 'json', 'other' => 'json', ]; public function cate(): BelongsTo { return $this->belongsTo(ProductCategory::class,'cate_id','id'); } public function specs(): HasMany { return $this->hasMany(ProductSpec::class,'product_id'); } public function setFilesAttribute(Product $product) { $files = []; foreach ($product->tech_param as $item){ $files[] = [ 'name' => '产品技术参数下载', 'url' => $item['url'] ]; } foreach ($product->cad_model as $item){ $files[] = [ 'name' => '产品CAD模型下载', 'url' => $item['url'] ]; } foreach ($product->cad_design as $item){ $files[] = [ 'name' => '产品CAD设计下载', 'url' => $item['url'] ]; } foreach ($product->su_model as $item){ $files[] = [ 'name' => '产品SU模型下载', 'url' => $item['url'] ]; } $files = array_merge($files,$product->other); $this->attributes['files'] = $files; } public function viewer(): HasMany { return $this->hasMany(StatProduct::class,'product_id','id'); } public function download(): HasMany { return $this->hasMany(StatProductDownload::class,'product_id','id'); } }