Проблема с 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" }
}

Как я могу сделать так, чтобы массив оставался таким что возвращает меня ?

я был бы очень признателен, потому что я не вижу, как это сделать.

Спасибо

Author: otacon070, 2016-09-24

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;

Чтобы получить необходимую структуру.

 2
Author: Muriano, 2016-09-30 08:04:16