您好我是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>
提前致谢:)
答案 0 :(得分: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>
您可能会发现这些有用: