0

「セクター」オブジェクトを含むグリッドを単純な 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'を追加しても発生します...

どんな助けでも感謝します、乾杯

4

1 に答える 1

0

ニンスオのコメントのおかげで、私はこれを理解することができました.

クロム開発者ツールでマークアップを表示していたところ、セル 0 の後に終了 TR が表示され、2 番目の条件がトリガーされていると思われました...

実際、開発者ツールは、要素インスペクターで不正な形式の html を「修正」しているように見えます。ソースを直接表示すると、終了 TR が追加されていないことがわかり (期待される出力)、実際には、セル 0 へのバックリンクがなかったため、新しい行をトリガーしていたのはセル 1 の開始 tr でした。

1 => 
  object(App\Model\Sector)[66]
    private '_id' => int 1
    private '_links' => 
      array (size=5)
        0 => int 1
        1 => int 2
        2 => int 10
        3 => int 11
        4 => int 12
于 2013-05-08T21:23:21.747 に答える