Twig中动态获取变量数据遇Entity错误,求解决方案
Twig动态获取实体字段报错的解决方法
你的问题出在拼接字段名时多了openingHours.前缀。当前代码里name变量的值是openingHours.MondayStart,而attribute(openingHours, name)相当于尝试访问openingHours["openingHours.MondayStart"]——但你的实体里根本不存在这个字段,自然会抛出Entity相关错误。
修正方法很简单,去掉多余的前缀,直接拼接工作日对应的字段名即可:
{% if openingHours %} {% set fieldName = myDate|date('l') ~ "Start" %} {% set openingHour = attribute(openingHours, fieldName) %} {% endif %}
如果需要遍历所有工作日处理,可以提前定义工作日列表循环操作:
{% if openingHours %} {% set weekdays = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'] %} {% for day in weekdays %} {% set openingHour = attribute(openingHours, day ~ "Start") %} {# 在这里处理每个工作日的开始时间数据 #} {% endfor %} {% endif %}
内容的提问来源于stack exchange,提问作者xRyen
相关产品推荐
相关产品推荐

