$messageData 包装好的消息数组 */ public function __construct( public readonly array $messageData ) {} /** * 执行队列任务,将已广播的聊天消息写入数据库。 */ public function handle(): void { Message::create([ 'room_id' => $this->messageData['room_id'], 'from_user' => $this->messageData['from_user'], 'to_user' => $this->messageData['to_user'] ?? '大家', 'content' => $this->messageData['content'], 'is_secret' => $this->messageData['is_secret'] ?? false, 'font_color' => $this->messageData['font_color'] ?? '', 'action' => $this->messageData['action'] ?? '', 'message_type' => $this->messageData['message_type'] ?? 'text', 'image_path' => $this->messageData['image_path'] ?? null, 'image_thumb_path' => $this->messageData['image_thumb_path'] ?? null, 'image_original_name' => $this->messageData['image_original_name'] ?? null, // 恢复 Carbon 时间对象 'sent_at' => Carbon::parse($this->messageData['sent_at']), ]); } }