Php 在Drupal 8中返回深度嵌套的字段变量值

Php 在Drupal 8中返回深度嵌套的字段变量值,php,drupal,twig,drupal-8,Php,Drupal,Twig,Drupal 8,在过去的几个小时里,我一直在试图解决这个问题,但还没有接近一个解决方案。我试图返回D8段落模板内链接目标属性的字符串值: 当我使用机器名(field\u link\u cta)在字段上执行var转储时,执行以下操作 {{dump(content.field_link_cta['#items'].getValue())}我得到结果返回值: 我可以遍历变量以返回标题ok,但由于某种原因无法访问链接属性 {{content.field_link_cta[0]['title']}-工作,返回值。 {

在过去的几个小时里,我一直在试图解决这个问题,但还没有接近一个解决方案。我试图返回D8段落模板内链接目标属性的字符串值:

当我使用机器名(field\u link\u cta)在字段上执行var转储时,执行以下操作

{{dump(content.field_link_cta['#items'].getValue())}
我得到结果返回值:

我可以遍历变量以返回标题ok,但由于某种原因无法访问链接属性

{{content.field_link_cta[0]['title']}
-工作,返回值。

{{content.field_link_cta[0]['#options']['#attributes']['#target']}
-不起作用,不返回值。

我错过了什么?既然我已经遍历了变量转储中列出的变量,那么“target”属性字符串不应该像标题一样返回吗?是否有更好的方法检查此变量的上下文

任何指点都将不胜感激

谢谢你的帮助

标记。

有两个选项:

备选方案1(更好):

备选案文2:

{{ content.field_link_cta['#items'].getValue().0['options']['attributes']['target']) }}
说明:

您确实执行了
{dump(content.field_link_cta['#items'].getValue())}
,您可以看到选项属性和目标数组键没有
。但是,除了转储之外,您从未使用过此选项(选项2)

最好执行
{dump(content.field\u link\u 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']['#属性']['#target']}
不起作用的原因,正确的代码将显示在“选项1”下

有两种选择:

备选方案1(更好):

备选案文2:

{{ content.field_link_cta['#items'].getValue().0['options']['attributes']['target']) }}
说明:

您确实执行了
{dump(content.field_link_cta['#items'].getValue())}
,您可以看到选项属性和目标数组键没有
。但是,除了转储之外,您从未使用过此选项(选项2)

最好执行
{dump(content.field\u link\u 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']['#属性']['#target']}
不起作用的原因,正确的代码将显示在“选项1”下

这非常有效,谢谢!我仍然无法使用
{dump(content.field\u link\u cta[0])}
正确转储数组的内容,但渲染工作正常。它的逻辑是有道理的。转储的输出是什么?你能试试
{{dump(content.field\u link\u cta.0)}
吗?这非常有效,谢谢!我仍然无法使用
{dump(content.field\u link\u cta[0])}
正确转储数组的内容,但渲染工作正常。它的逻辑是有道理的。转储的输出是什么?你能试试
{{dump(content.field\u link\u cta.0)}