Twig 多维数组变量不显示
Twig Multidimensional Array Variable Not Displaying
数据库查询的结果使用以下代码填充数组:
if (is_array($result)) {
$column_count = (int)ceil( count($result) / 2 );
$row_count = (int)0;
$column = 1;
foreach ($result AS $value) {
$array['concordance'][$column][] = [
'concordance_word' => $value['word'],
'book_name' => $value['book_name'],
'chapter' => $value['chapter'],
'verse' => $value['verse'],
];
++$row_count;
if ( $column_count === $row_count ) { ++$column; }
}
}
循环填充后 $array 的示例是:
Array
(
[concordance] => Array
(
[1] => Array
(
[0] => Array
(
[concordance_word] => aaron
[book_name] => Micah
[chapter] => 6
[verse] => 4
)
[1] => Array
(
[concordance_word] => aaron
[book_name] => Luke
[chapter] => 1
[verse] => 5
)
[2] => Array
(
[concordance_word] => aaron
[book_name] => Acts
[chapter] => 7
[verse] => 40
)
我不明白为什么以下内容不能访问 Twig 视图中的变量:
<h3>{{ document.concordance.1.0.concordance_word|capitalize }}</h3>
在我将 $column 添加到数组之前可以访问该变量,如下所示:
<h3>{{ document.concordance.0.concordance_word|capitalize }}</h3>
我没有对控制器做任何改动。 dump 命令显示正在传递的变量。 Twig 是否将 1 解释为 true?有没有什么|语法我必须申请Twig才能把这个看成多维数组变量?
您可以使用方括号访问数组,如下所示:
<h3>{{ document.concordance[1][0].concordance_word|capitalize }}</h3>
数据库查询的结果使用以下代码填充数组:
if (is_array($result)) {
$column_count = (int)ceil( count($result) / 2 );
$row_count = (int)0;
$column = 1;
foreach ($result AS $value) {
$array['concordance'][$column][] = [
'concordance_word' => $value['word'],
'book_name' => $value['book_name'],
'chapter' => $value['chapter'],
'verse' => $value['verse'],
];
++$row_count;
if ( $column_count === $row_count ) { ++$column; }
}
}
循环填充后 $array 的示例是:
Array
(
[concordance] => Array
(
[1] => Array
(
[0] => Array
(
[concordance_word] => aaron
[book_name] => Micah
[chapter] => 6
[verse] => 4
)
[1] => Array
(
[concordance_word] => aaron
[book_name] => Luke
[chapter] => 1
[verse] => 5
)
[2] => Array
(
[concordance_word] => aaron
[book_name] => Acts
[chapter] => 7
[verse] => 40
)
我不明白为什么以下内容不能访问 Twig 视图中的变量:
<h3>{{ document.concordance.1.0.concordance_word|capitalize }}</h3>
在我将 $column 添加到数组之前可以访问该变量,如下所示:
<h3>{{ document.concordance.0.concordance_word|capitalize }}</h3>
我没有对控制器做任何改动。 dump 命令显示正在传递的变量。 Twig 是否将 1 解释为 true?有没有什么|语法我必须申请Twig才能把这个看成多维数组变量?
您可以使用方括号访问数组,如下所示:
<h3>{{ document.concordance[1][0].concordance_word|capitalize }}</h3>