2016-12-07 9 views
2

Привет, я новичок в SilverStripe.SilverStripe: как визуализировать нормальный для каждого цикла в шаблоне

У меня есть массив стран $AllCountries Я хочу сделать в шаблоне, используя цикл.

Если есть модель, то я могу легко это сделать, но я хочу сделать это, используя массив, который я определил здесь.

Array 
    (
     [AD] => Andorra 
     [AE] => United Arab Emirates 
     [AF] => Afghanistan 
     [AG] => Antigua and Barbuda 
     [AI] => Anguilla 
    ); 


<select name="Country" class="dropdown form-input" id="country"> 
     <% loop $AllCountries %> 
      <option value="$key">$value</option> 
     <% end_loop %> 
</select> 

Заранее спасибо :)

ответ

5

Вы должны будете использовать ArrayList и ArrayData:

// MyPage_Controller 
public function getOptions() { 
    $data = array(
     'AD' => 'Andorra', 
     'AE' => 'UAE' 
    ); 

    $result = new ArrayList(); 
    foreach ($data as $code => $country) { 
     $arrayData = new ArrayData(array(
      'Code' => $code, 
      'Name' => $country 
     )); 

     $result->push($arrayData); 
    } 

    return $result; 
} 

// MyPage.ss 
<select name="Country" class="dropdown form-input" id="country"> 
    <% loop $Options %> 
     <option value="{$Code}">{$Name}</option> 
    <% end_loop %> 
</select> 

Вы можете найти эти полезные:

+0

работал Спасибо :) @kinglozzer –