Проблема с array и Twig symfony 2
у меня есть проблема между контроллером приложения и шаблоном twig, что я делаю, это преобразование поля из строки базы данных в UTF8, а затем отправить массив в представление, и это поле будет хорошо отформатировано.
Код контроллера и twig:
foreach ($articles as $key):
foreach ($key as $a => $b):
$articles1[] = array($a,utf8_decode($b));
endforeach;
endforeach;
Article - это массив, который возвращает мне запрос к базе данных и содержит следующее:
$articles1 = array(4) {
[0]=> array(2) { [0]=> string(6) "titulo" [1]=> string(43) "texto1" }
[1]=> array(2) { [0]=> string(3) "url" [1]=> string(43) "example-url" }
[2]=> array(2) { [0]=> string(6) "titulo" [1]=> string(43) "texto2" }
[3]=> array(2) { [0]=> string(3) "url" [1]=> string(43) "example-url2" }
}
проблема возникает, когда я передаю этот массив в представление:
return $this->render('bundlecualquiera:articles:slide.html.twig', **array('articles1'=>$articles1));
это представление, где я, по-видимому, просматриваю массив и извлекаю только из примера заголовок:
**{% for user in articles1 %}
{{user.titulo}}
{% endfor %}****
ошибка, которую он показывает: Key" title "for array with keys" 0, 1 " does not exist in ..(шаблон).
это должно выглядеть так.:
$articulos = array(2) {
[0]=> array(3) {
["url"]=> string(16) "url-exmple"
["titulo"]=> string(47) "titulo de articulo"
["imagen"]=> string(23) "imagen.jpg" }
[1]=> array(3) {
["url"]=> string(19) "url-example 2"
["titulo"]=> string(39) "titulo de artiulo"
["imagen"]=> string(20) "imagen.jpg" }
}
Unavez выполнено преобразование в UTF8. Но это остается, как я показываю выше..:
$articles1 = array(4) {
[0]=> array(2) { [0]=> string(6) "titulo" [1]=> string(43) "texto1" }
[1]=> array(2) { [0]=> string(3) "url" [1]=> string(43) "example-url" }
[2]=> array(2) { [0]=> string(6) "titulo" [1]=> string(43) "texto2" }
[3]=> array(2) { [0]=> string(3) "url" [1]=> string(43) "example-url2" }
}
Как я могу сделать так, чтобы массив оставался таким что возвращает меня ?
я был бы очень признателен, потому что я не вижу, как это сделать.
Спасибо
1 answers
На каждой итерации этого цикла:
foreach ($key as $a => $b):
$articles1[] = array($a,utf8_decode($b));
endforeach;
Вы создаете индекс в $articles1
Использует:
foreach ($articles as $key):
$tArray = array();
foreach ($key as $a => $b):
$tArray [$a] = utf8_decode($b);
endforeach;
$articles1[] = $tArray;
endforeach;
Чтобы получить необходимую структуру.