Рендеринг веток выполняется / завершается (на стороне сервера), прежде чем javascript (на стороне клиента) будет готов к использованию.Таким образом, вы не можете вернуться во времени.Единственный вариант - использовать javascript.
Если ваш form_widget возвращает поле выбора: (я предполагаю, что это так, как вы говорите о «массиве»)
<div class="year">
<select name="myselect" id="myselect">
<option value="1980">1980</option>
<option value="1981">1981</option>
<option value="1982">1982</option>
<option value="1983">1983</option>
</select>
</div>
<script>
var birthdateJSON = localStorage.getItem('user_birthdate');
var birthdate = JSON.parse(birthdateJSON);
var year = birthdate.year;
// Be sure to pre-select it after document ready
$(function() {
// You can do this
$('.year select option[value="' + year + '"]').attr('selected', 'selected');
// Or this
$('.year select').val(year);
});
</script>
Если это текстовое поле
<div class="year">
<input type="text" name="myselect" id="myselect">
</div>
<script>
var birthdateJSON = localStorage.getItem('user_birthdate');
var birthdate = JSON.parse(birthdateJSON);
var year = birthdate.year;
// Be sure to pre-fill it after document ready
$(function() {
// You can do this
$('.year input').val(year);
});
</script>