我正在编写一个树枝模板,以在一个简单的 HTML 表格中显示一个包含“扇区”对象的网格。如果对象没有与左侧相邻的链接,我想开始一个新行,如果它没有下一个链接,我想结束该行。
这个代码示例的奇怪之处在于输出,除了 0 应该与序列 1,2,3.. 输出在同一行之外,一切看起来都很好
var_dump'ing Sector 对象表明它有一个“下一个”链接,因此不应呈现关闭的 tr。在该对象上调用 hasNext 函数会返回 true,并且在模板中输出 hasNext 函数会显示 true。
0
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19
20 21 22 23 24 25 26 27 28 29
30 31 32 33 34 35 36 37 38 39
40 41 42 43 44 45 46 47 48 49
50 51 52 53 54 55 56 57 58 59
60 61 62 63 64 65 66 67 68 69
70 71 72 73 74 75 76 77 78 79
80 81 82 83 84 85 86 87 88 89
90 91 92 93 94 95 96 97 98 99
这是模板:
<table>
{% for sector in sectors %}
{% if sector.hasPrev() == false %}
<tr>
{% endif %}
<td>{{ sector.Id }}</td>
{% if sector.hasNext() == false %}
</tr>
{% endif %}
{% endfor %}
</table>
hasNext 和 hasPrev 函数定义为:
public function hasNext(){
return in_array($this->_id + 1, $this->_links);
}
public function hasPrev(){
return in_array($this->_id - 1, $this->_links);
}
扇区对象 (0) var_dumped 是:
array (size=100)
0 =>
object(App\Model\Sector)[62]
private '_id' => int 0
private '_links' =>
array (size=3)
0 => int 1
1 => int 10
2 => int 11
private '_universe' => null
即使我添加 kludge 'and sector.Id > 0' 也会发生这种情况,认为这可能是树枝的限制或 RTM 时刻......
任何帮助表示赞赏,干杯