「セクター」オブジェクトを含むグリッドを単純な HTML テーブルに表示する小枝テンプレートをコーディングしています。オブジェクトの左に隣接するリンクがない場合は新しい行を開始したい、次のリンクがない場合は行を終了したい.
このコード サンプルの奇妙な点は出力です。シーケンス 1,2,3. と同じ行に 0 が出力されることを除いて、すべて問題ないように見えます。
Sector オブジェクトを var_dump すると、「次の」リンクがあることが示されるため、最後の 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
これは、小枝の制限またはRTMの瞬間のいずれかである可能性があると考えて、kludge 'およびsector.Id > 0'を追加しても発生します...
どんな助けでも感謝します、乾杯