'json']; protected $appends = ['image']; public function getImageAttribute($value) { $ids = self::normalizeJsonIdList($this->image_id); if (empty($ids)) { return []; } return Upload::whereIn('id', $ids)->get(); } /** 兼容 image_id 为单值、数组或脏数据的情况 */ public static function normalizeJsonIdList($value): array { if ($value === null || $value === '' || $value === []) { return []; } if (is_array($value)) { return array_values(array_filter($value, function ($id) { return $id !== null && $id !== '' && is_numeric($id); })); } if (is_numeric($value)) { return [(int) $value]; } return []; } public function image() { return $this->hasOne(Upload::class, 'id', 'image_id'); } }