'array', // JSON 轉陣列 ]; public function news(){ return $this->belongsTo(News::class); } public function contentType() { switch ($this->paragraph_type){ case 1: return "image"; case 2: return "text"; default: return ""; } } public function photos(){ return $this->hasMany(NewsParagraphPhoto::class)->orderBy("order"); } /** * 取得特定語言的文字內容 */ public function getTextContent($locale = 'zh_TW'): string { if ($this->paragraph_type != 2) { return ''; } $content = $this->text_content; if (is_array($content)) { return $content[$locale] ?? ''; } if (is_string($content)) { $decoded = json_decode($content, true); return $decoded[$locale] ?? ''; } return ''; } }