Значение установки Symfony2.3 и innerHTML поля выбора из запроса

Из запроса я пытаюсь персонализировать поле выбора.

вот как я получаю содержимое выбора:

    $em = $this->getDoctrine()->getManager();
    $query2 = $em->createQuery("SELECT p.id,p.nombre FROM Exppromociones p");
    $productos = $query2->getArrayResult();

Таблица должна выглядеть так:

{"id":93,"nombre":"Bucket"},
{"id":152,"nombre":"Spoon"},
{"id":142,"nombre":"Fork"}

С переменной $ productos я создаю форму:

   $form = $this->createFormBuilder()
        ->add('productos', 'choice', array('label' => 'Productos',
            'required' => true,
            'choices' => $productos,
        ))
        ->getForm();

И эта форма приводит к:

<optgroup label = "0">
   <option value = "id">93</option>
   <option value = "nombre">Bucket</option>
</optgroup>

Я хочу, чтобы поле выбора имело значение, равное id, а innerHTML, равное nombre, например:

<option value=93>Bucket</option>

Недвижимость choice_label вам поможет.

u_mulder 25.07.2018 17:46

@u_mulder Symfony2 не имеет choice_label

Javier Heisecke 25.07.2018 18:10

Symfony 2 имеет choice_label: symfony.com/doc/2.8/reference/forms/types/choice.html

BENARD Patrick 25.07.2018 19:06

У него есть один, но он не поможет вам в решении этой проблемы. Просто нужно настроить свой массив в соответствии с примером в документации.

Cerad 25.07.2018 19:31

Извините, я сейчас чувствую себя очень глупо, это Symfony 2.3, я новичок в этом

Javier Heisecke 25.07.2018 20:09
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
6
72
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я сохранил тот же запрос

    $em = $this->getDoctrine()->getManager();
    $query2 = $em->createQuery("SELECT p.id,p.nombre FROM Exppromociones p");
    $productos = $query2->getArrayResult();

но перед созданием своего конструктора форм я инициализирую массив, извлекаю идентификатор и номер из "$ productos" и загружаю их в $ choices

        $choices=array();
        foreach ($categorias as $cat){
            $id=$cat['id'];
            $nombre=$cat['nombre'];
            $choices[$id] = $nombre;
        }
        $form = $this->createFormBuilder()
        ->add('categoria', 'choice', array('label' => 'Categoria',
            'required' => true,
            'choices' => $choices, 
        ))
        ->getForm();

Теперь мои варианты выглядят так

<option value=93>Bucket</option>

Другие вопросы по теме