遍历 Dataobject 时,如何每列显示 2 条记录?

When looping over Dataobject, how to display 2 records per column?

循环遍历 DataObject 时如何每列只显示 2 个项目,例如

我需要按照这个有 4 列的设计来显示位置。我正在为列使用 boostrap。

我有一个Location.phpDataobject

class Location extends DataObject {

    public static $default_sort = 'Sort';

    private static $db = array(
        'Sort' => 'Int',
        'City' => 'Varchar(255)',
        'Address' => 'Text',
        'PhoneNumber' => 'Varchar(255)'
    );

    private static $has_one = array(
        'SiteConfigExtension' => 'SiteConfig',
    );

    private static $summary_fields = array(
        'City',
        'Address',
        'PhoneNumber',
    );


}

在我的模板 .ss 中有这个

<% with $SiteConfig %>
    <% loop Locations %>
        <div class="col-md-3">
            <div class="location-$Pos">
                <h6>$City</h6>
                <div>$Address</div>
                <div>$PhoneNumber</div>
            </div>
        </div>
    <% end_loop %>
<% end_with %>

显然 atm 这会为 Dataobject 中的每条记录创建一个新列。

您可以使用 $First $Last 和 $MultipleOf(x)。下面将每行显示 2 列。将 MultipleOf(2) 更改为另一个数字以显示每行不同的列数。 MultipleOf(3) = 每行 3 列,MultipleOf(4) = 每行 4 列,等等。您将需要更新 css class 名称。

  <% with $SiteConfig %>
    <% loop Locations %>
        <% if First %>
            <div class="row">
        <% end_if %>

        <div class="col-md-6">
            <div class="location-$Pos">
                <h6>$City</h6>
                <div>$Address</div>
                <div>$PhoneNumber</div>
            </div>
        </div>

        <% if MultipleOf(2) %>
          </div><% if not Last %><div class="row"><% end_if %>
        <% else %>
          <% if Last %></div><% end_if %>
      <% end_if %>
    <% end_loop %>
  <% end_with %>