在 Drupal 8 中返回深度嵌套的字段变量值
Returning deeply nested field variable value in Drupal 8
过去几个小时我一直在尝试解决这个问题,但还没有接近解决方案。我正在尝试 return D8 段落模板中 link 目标属性的字符串值:
当我使用机器名称 (field_link_cta) 在字段上执行 var 转储时,执行以下操作
{{ dump(content.field_link_cta['#items'].getValue()) }}
我得到结果 return 值:
我可以将变量遍历到 return 标题 ok,但是由于某些原因无法访问 link 属性?
{{ content.field_link_cta[0]['#title'] }}
- 有效,returns 值。
{{ content.field_link_cta[0]['#options']['#attributes']['#target'] }}
- 不起作用,return没有价值。
我在这里错过了什么?鉴于我已经遍历了变量转储中列出的变量,'target' 属性字符串不应该像标题一样被 return 编辑吗?有没有更好的方法来检查这个变量的上下文?
任何指点将不胜感激。
感谢您的帮助!
马克.
有两种选择:
选项 1(更好):
{{ content.field_link_cta.0['#options']['attributes']['target'] }}
选项 2:
{{ content.field_link_cta['#items'].getValue().0['options']['attributes']['target']) }}
解释:
您做了 {{ dump(content.field_link_cta['#items'].getValue()) }}
,您可以看到选项属性和目标数组键没有 #
。但是,除了转储之外,您从未使用过此选项(选项 2)。
最好做 {{ dump(content.field_link_cta[0]) }}
你会看到不同的转储,比如:
array (size=4)
'#type' => string 'link' (length=4)
'#title' => string 'link/text' (length=9)
'#options' =>
array (size=1)
'attributes' =>
array (size=3)
'target' => string '_blank' (length=6)
'rel' => string 'rel' (length=3)
'class' =>
array (size=1)
...
这里很明显 title 数组键有 #
,这就是 {{ content.field_link_cta[0]['#title'] }}
有效的原因。
属性和目标数组键没有 #
,这就是 {{ content.field_link_cta[0]['#options']['#attributes']['#target'] }}
不起作用的原因,正确的代码将显示在 "Option 1" 下。
过去几个小时我一直在尝试解决这个问题,但还没有接近解决方案。我正在尝试 return D8 段落模板中 link 目标属性的字符串值:
当我使用机器名称 (field_link_cta) 在字段上执行 var 转储时,执行以下操作
{{ dump(content.field_link_cta['#items'].getValue()) }}
我得到结果 return 值:
我可以将变量遍历到 return 标题 ok,但是由于某些原因无法访问 link 属性?
{{ content.field_link_cta[0]['#title'] }}
- 有效,returns 值。
{{ content.field_link_cta[0]['#options']['#attributes']['#target'] }}
- 不起作用,return没有价值。
我在这里错过了什么?鉴于我已经遍历了变量转储中列出的变量,'target' 属性字符串不应该像标题一样被 return 编辑吗?有没有更好的方法来检查这个变量的上下文?
任何指点将不胜感激。
感谢您的帮助!
马克.
有两种选择:
选项 1(更好):
{{ content.field_link_cta.0['#options']['attributes']['target'] }}
选项 2:
{{ content.field_link_cta['#items'].getValue().0['options']['attributes']['target']) }}
解释:
您做了 {{ dump(content.field_link_cta['#items'].getValue()) }}
,您可以看到选项属性和目标数组键没有 #
。但是,除了转储之外,您从未使用过此选项(选项 2)。
最好做 {{ dump(content.field_link_cta[0]) }}
你会看到不同的转储,比如:
array (size=4)
'#type' => string 'link' (length=4)
'#title' => string 'link/text' (length=9)
'#options' =>
array (size=1)
'attributes' =>
array (size=3)
'target' => string '_blank' (length=6)
'rel' => string 'rel' (length=3)
'class' =>
array (size=1)
...
这里很明显 title 数组键有 #
,这就是 {{ content.field_link_cta[0]['#title'] }}
有效的原因。
属性和目标数组键没有 #
,这就是 {{ content.field_link_cta[0]['#options']['#attributes']['#target'] }}
不起作用的原因,正确的代码将显示在 "Option 1" 下。