You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							58 lines
						
					
					
						
							1.3 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							58 lines
						
					
					
						
							1.3 KiB
						
					
					
				
								<?php
							 | 
						|
								
							 | 
						|
								namespace App\Models;
							 | 
						|
								
							 | 
						|
								use Illuminate\Database\Eloquent\Factories\HasFactory;
							 | 
						|
								use Illuminate\Database\Eloquent\SoftDeletes;
							 | 
						|
								use Illuminate\Support\Facades\Storage;
							 | 
						|
								
							 | 
						|
								/**
							 | 
						|
								 * 供应商产品
							 | 
						|
								 * Class Product
							 | 
						|
								 * @package App\Models
							 | 
						|
								 */
							 | 
						|
								class Product extends BaseModel
							 | 
						|
								{
							 | 
						|
								    use HasFactory, SoftDeletes;
							 | 
						|
								
							 | 
						|
									protected $guarded = ['id']; //不允许编辑的字段
							 | 
						|
									protected $appends = ['picture'];
							 | 
						|
								
							 | 
						|
								    // 获取所有产品图片
							 | 
						|
								    public function getPicturesAttribute($value): array
							 | 
						|
								    {
							 | 
						|
								        $pictures = $value ? json_decode($value, true) : [];
							 | 
						|
								        foreach ($pictures as &$v) {
							 | 
						|
								        	$v = Storage::disk('public')->url($v);
							 | 
						|
										}
							 | 
						|
								        $this->append('picture');
							 | 
						|
								        return $pictures;
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    // 获取第一张产品图片
							 | 
						|
								    public function getPictureAttribute($value): string
							 | 
						|
								    {
							 | 
						|
								        return $this->pictures[0] ?? '';
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    //保存图片时去掉域名
							 | 
						|
									public function setPicturesAttribute($value)
							 | 
						|
									{
							 | 
						|
										if (is_array($value)) {
							 | 
						|
											foreach ($value as &$v) {
							 | 
						|
												$v = str_replace(Storage::disk('public')->url(''), '', $v);
							 | 
						|
											}
							 | 
						|
											$this->attributes['pictures'] = json_encode($value);
							 | 
						|
										}
							 | 
						|
									}
							 | 
						|
								
							 | 
						|
								    public function supplier()
							 | 
						|
									{
							 | 
						|
										return $this->belongsTo(Supplier::class);
							 | 
						|
									}
							 | 
						|
								
							 | 
						|
									public function category()
							 | 
						|
									{
							 | 
						|
										return $this->belongsTo(Category::class);
							 | 
						|
									}
							 | 
						|
								}
							 |