schema([ // 添加网络接口选择框 Select::make('network_interface') ->label('选择网络接口') ->options(array_combine(array_keys($interfaces), array_keys($interfaces))) ->reactive() ->afterStateUpdated(function ($state, callable $set) use ($interfaces) { // 调试输出:检查当前选择的接口 error_log("选择的接口: " . $state); // 当选择框的值更新时,自动填充对应的网络信息 if (isset($interfaces[$state])) { $set('ip', $interfaces[$state]['ip'] ?? '无IP地址'); $set('mask', $interfaces[$state]['mask'] ?? '无子网掩码'); // 假设我们通过其他方式获取网关(如手动输入或自动获取) // $set('gateway', '自动获取或手动输入的值'); error_log("ip " . $interfaces[$state]['ip']); error_log("mask " . $interfaces[$state]['mask']); } else{ error_log("未找到接口:" . $state); } }), // 动态显示端口信息 Fieldset::make('端口信息') ->schema([ TextInput::make('ip') ->label("IP地址") ->readOnly() // 禁用以表示这是自动填充的字段 ->reactive(), TextInput::make('mask') ->label('子网掩码') ->readOnly() ->reactive(), ]) ->visible(fn($get) => !is_null($get('network_interface'))) // 检查是否有选择的接口 ->reactive(), // DHCP选项 Select::make('dhcp_enabled') ->options([ true => "是", false => "否" ]) ->default(false) ->label("DHCP启用") ->required() ->reactive(), // 动态显示的网络信息字段 Fieldset::make('网络配置') ->schema([ TextInput::make('ip_address') ->label("IP地址") ->placeholder('如127.0.0.1') ->required(), TextInput::make('subnet_mask') ->label('子网掩码') ->placeholder('如255.255.255.0') ->required(), TextInput::make('gateway') ->label('网关') ->placeholder('如192.168.1.1') ->required(), TextInput::make('dns_server_1') ->label('DNS地址') ->placeholder('如6.6.6.6') ->required(), TextInput::make('dns_server_2') ->label('DNS备用地址') ->placeholder('如114.114.114.114') ->required(), ]) ->visible(fn($get) => in_array($get('dhcp_enabled'), [false])), ]); } }