$servers 关联的节点 */ class ServerMachine extends Model { protected $table = 'v2_server_machine'; protected $guarded = ['id']; protected $casts = [ 'is_active' => 'boolean', 'last_seen_at' => 'integer', 'load_status' => 'array', 'created_at' => 'timestamp', 'updated_at' => 'timestamp', ]; protected $hidden = ['token']; public function servers(): HasMany { return $this->hasMany(Server::class, 'machine_id'); } public function loadHistory(): HasMany { return $this->hasMany(ServerMachineLoadHistory::class, 'machine_id'); } /** * 生成新的随机 Token */ public static function generateToken(): string { return Str::random(32); } /** * 更新最后心跳时间 */ public function updateHeartbeat(): bool { return $this->forceFill(['last_seen_at' => now()->timestamp])->save(); } }