You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Centreon中Smarty模板无法访问host_alias变量问题求助

Smarty模板中$service.host_alias变量未定义的排查与解决

在Smarty模板遍历$service_selected数据时,{$service.host_name}可正常输出主机名,但{$service.host_alias}无法显示主机别名,提示该变量未定义。

问题代码片段

{foreach from=$service_selected item=service}
Host: {$service.host_name}
MasterID: {$service.host_alias} 
Service: {$service.description}
State: {$service.state_str}
Duration: {$service.last_hard_state_change_duration}
Output: {$service.output|substr:0:2048}
Numéro de série: {$service.serial_number}
Version du logiciel: {$service.software_version}
Dernière vérification: {$service.last_check_time}
{/foreach}

工单显示情况

截图显示:Host、Service、State等字段均正常展示对应内容,但MasterID(对应$service.host_alias)的位置为空,无任何输出。

排查与解决方案

  • 检查数据源赋值逻辑:确认后端代码是否将host_alias字段正确赋值给$service_selected数组的每个service元素。若从数据库取数,需确保SQL语句包含host_alias列(或对应表中的别名字段)。
  • 验证字段名一致性:核对数据库查询返回的列名与Smarty模板变量名是否完全匹配(注意大小写、下划线等细节),避免因拼写错误导致变量未定义。
  • 临时兼容处理(可选):若host_alias字段无法从数据源获取,可临时用host_name作为兜底,写法示例:MasterID: {$service.host_alias|default:$service.host_name},避免页面出现空白。
  • 调试变量结构:在模板中添加{$service|var_dump},查看service数组的完整结构,确认是否存在host_alias键名及对应值是否正确。

内容的提问来源于stack exchange,提问作者Nouhaila elkhelfaoui

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 07:49:56