Php 筛选器操作后出现细枝内部服务器错误

Php 筛选器操作后出现细枝内部服务器错误,php,twig,silex,Php,Twig,Silex,我在Twig中遇到了这种疯狂的行为:我有一个长的名称和姓氏数组(打包成一个字符串),看起来像这样: [0] "Name1 Surname1" [1] "Name2 Surname2" ... [N] "NameN SurnameN" 我希望以一种方式操纵此数组,使每个名称+姓氏以以下方式显示: N. Surname 然后将输出与其他一些数据放在一个表中,这是所述表的结构: ... <div class="table-responsive"> <table c

我在Twig中遇到了这种疯狂的行为:我有一个长的名称和姓氏数组(打包成一个字符串),看起来像这样:

[0] "Name1 Surname1"
[1] "Name2 Surname2"
      ...
[N] "NameN SurnameN"
我希望以一种方式操纵此数组,使每个名称+姓氏以以下方式显示:

N. Surname
然后将输出与其他一些数据放在一个表中,这是所述表的结构:

...
<div class="table-responsive">
  <table class="table table-hover table-bordered table-condensed">
    <thead class="header">
      <tr>
        <th class="text-center">Field 1</th>
        <th class="text-center">Field 2</th>
        <th class="text-center">Field 3</th>
        <th class="text-center">Field 4</th>
      </tr>
    </thead>
    <tbody>
    {#
      data is an associative array with 4 keys
    #}
    {% for data in parameters.list %}
      <tr class="text-center">
        <td>...</td>
        {% set new_name = data.nameSurnames|split(' ', 2) %}
        <td><span class="name">{{new_name[0]|first}}. {{new_name[1]}}</span><br /><small>{{data.keyThree|raw}}</small></td>
        <td>...</td>
        <td>...</td>
      </tr>
    {% endfor %}
    </tbody>
  </table>
</div>
...
输出为:

array(2) { [0]=> string(5) "Name1" [1]=> string(8) "Surname1" } array(2) { [0]=> string(5) "Name2" [1]=> string(8) "Surname2" } ... array(2) { [0]=> string(5) "NameN" [1]=> string(8) "SurnameN" }
string(5) "Name1" ... string(5) "NameN"
如果我这样做:

{{dump(new_name[0])}}
输出为:

array(2) { [0]=> string(5) "Name1" [1]=> string(8) "Surname1" } array(2) { [0]=> string(5) "Name2" [1]=> string(8) "Surname2" } ... array(2) { [0]=> string(5) "NameN" [1]=> string(8) "SurnameN" }
string(5) "Name1" ... string(5) "NameN"

但是任何涉及
new\u name[1]
的内容都会产生500错误,即使
dump(new\u name)
显示定义了
new\u name[1]

调查问题时,相同的元素没有姓氏值,因此代码:

{% set new_name = data.nameSurnames|split(' ', 2) %}
<td><span class="name">{{new_name[0]|first}}. {{new_name[1]}}</span><br /><small>{{data.keyThree|raw}}</small></td>
解决问题

检查注释以供进一步参考


对于错误消息(Silex framework)

调查该问题时,已经有疑问了,因为有相同的元素没有姓氏值,所以代码:

{% set new_name = data.nameSurnames|split(' ', 2) %}
<td><span class="name">{{new_name[0]|first}}. {{new_name[1]}}</span><br /><small>{{data.keyThree|raw}}</small></td>
解决问题

检查注释以供进一步参考


已经对错误消息(Silex framework)表示怀疑了。

您是否能够在上复制问题并共享链接?很遗憾,我不能。奇怪的是,在另一个页面中执行相同的过程可以正常工作。。。唯一真正的区别是,在工作页面上,姓名和姓氏的数量要少得多。但是如果内存不足,我想
{{{dump(new_name)}}
也会失败。。然而,这是一个样本。结果表明,名单上的姓名和姓氏是有缺陷的。有些条目只有名字,没有姓氏。出于一些模糊的原因,这导致了一个500内部服务器错误,但即使插入了一个有缺陷的列表,我也无法在Twigfidle中复制它。事实上,关于传递给
split()
的第二个参数,声明:如果limit为正,则返回的数组将包含最多limit元素,最后一个元素包含字符串的其余部分;因此,我认为它应该抛出一个错误,但在我的例子中,它没有检查如何构造
Twig\u环境。如果您使用'strict_variables'将其构造为true,那么这可能就是行为。查看更多选项或更简单地添加一个if语句来检查new_name[1]是否定义为如下:
{%if new_name[1]定义为%}{{new_name[1]}{%else%}否{%endif%}
您能够在上复制问题并共享链接吗?很遗憾,我不能。奇怪的是,在另一个页面中执行相同的过程可以正常工作。。。唯一真正的区别是,在工作页面上,姓名和姓氏的数量要少得多。但是如果内存不足,我想
{{{dump(new_name)}}
也会失败。。然而,这是一个样本。结果表明,名单上的姓名和姓氏是有缺陷的。有些条目只有名字,没有姓氏。出于一些模糊的原因,这导致了一个500内部服务器错误,但即使插入了一个有缺陷的列表,我也无法在Twigfidle中复制它。事实上,关于传递给
split()
的第二个参数,声明:如果limit为正,则返回的数组将包含最多limit元素,最后一个元素包含字符串的其余部分;因此,我认为它应该抛出一个错误,但在我的例子中,它没有检查如何构造
Twig\u环境。如果您使用'strict_variables'将其构造为true,那么这可能就是行为。查看更多选项或更多信息只需添加一个if语句来检查new_name[1]是否定义如下:
{%if new_name[1]定义为%}{{new_name[1]}{%else%}否{%endif%}