Объекты, связанные с темой формы Symfony 2

Я использую Symfony 2.4.

У меня есть 2 объекта, имеющие отношения OneToMany и ManyToOne.

Я визуализирую объекты в ветке.

class SomeController extends Controller
{

    /**
     * @return \Symfony\Component\HttpFoundation\Response
     */
    public function listAction()
    {
        $em = $this->getDoctrine()->getManager('some_manager');
        $entities = $em->getRepository('SomeBundle:SomeClass')->findAll();

        return $this->render('SomeBundle:list.html.twig', ['entities' => $entities]);
    }
    ...

Прямые вещи. Работает нормально, тут проблем нет. Это больше для завершения.


Формы такие:

class FirstType extends AbstractType
{
    /**
     * Build the form elements
     *
     * @param FormBuilderInterface $builder
     * @param array $options
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('url', 'hidden')
            ->add('secondEntity', 'collection', ['type' => new SecondType()])
        ;
    }
    ...

class SecondType extends AbstractType
{
    /**
     * Build the form elements
     *
     * @param FormBuilderInterface $builder
     * @param array $options
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('value')
            ->add('type')
        ;
    }

Опять же, работает нормально.


Веточка

{% block content %}

    <form method = "post" class = "form form-horizontal">
        {{ form_start(form) }}
        {{ form_row(form._token) }}

        {{ form_errors(form.url) }}
        {{ form_widget(form.url) }}

        {{ form_errors(form.secondEntityGetterName) }}
        {{ form_widget(form.secondEntityGetterName) }}

        <div class = "form-actions">
            <button type = "submit" class = "btn btn-primary">Submit</button>
        </div>

        {{ form_end(form) }}
    </form>
{% endblock content %}

Здесь тоже все работает хорошо. Однако, поскольку они связаны, Symfony настаивает на отображении того, сколько сущностей связано с ним.

Что-то вроде этого Объекты, связанные с темой формы Symfony 2

Обратите внимание на целые числа в левой части скриншота. Я хотел бы удалить их и оставить только правую часть скриншота.

У меня есть РТФМ, но в нем ничего не указано о связанных объектах.

Я пытался использовать различные геттеры внутри ветки в надежде, что смогу отобразить каждый элемент отдельно. Пока это больше хлопот, чем что-либо еще.

Я уверен, что должен быть лучший способ.

Я думаю, проблема в том, что добавленный вами secondEntity - это просто тип collection (2-й параметр add() ), вам, возможно, придется создать свой собственный, расширив FormTypeInterface - это просто предположение

zedling 18.03.2019 15:01

Я реализую это. abstract class AbstractType implements FormTypeInterface сущности, насколько я могу судить, в порядке. Проблема не в коде или отношениях, а в тех целых числах, которые появляются, потому что symfony хочет быть хорошим. В целом, я почти уверен, что это легко исправить, я просто не могу найти его...

Andrei 18.03.2019 15:10

Я думаю, вам нужно установить для метки значение false: symfony.com/doc/4.1/forms.html#параметры-типа-поля

Vyctorya 18.03.2019 17:14

Хорошая догадка, но не сигара :(. Это было первое, что я попробовал.

Andrei 18.03.2019 18:38
Стоит ли изучать 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 и хотите разрабатывать...
1
4
39
0

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