Хобрук: Ваш путь к мастерству в программировании

Как отобразить несколько сведений о другом объекте в одной и той же форме?

На самом деле, я пытаюсь создать форму для среднего объекта и хочу отобразить множество входных данных для одного и того же объекта (цвет проекта и имя проекта). Я бы тоже смог создать объект проекта.

# MyNiceBundle/Form/Type/CollaborationType.php

public function buildForm(FormBuilder $builder, array $options)
{
    $builder->add('project', 'entity', array(
        'class' => 'MyNiceBundle:Project',
        'property' => 'name'
    ));
    $builder->add('project', 'entity', array(
        'class' => 'MyNiceBundle:Project',
        'property' => 'color'
    ));
    $builder->add('participant', 'entity', array(
        'class' => 'MyNiceBundle:User',
        'property' => 'email',
        'multiple' => true,
        'expanded' => true
    ));
    $builder->add('workgroup', 'entity', array(
        'class' => 'MyNiceBundle:Workgroup',
        'property' => 'name',
        'multiple' => false,
        'expanded' => true
    ));
}


# Resources/Views/project_form.html.twig

<form id="project-creation" class="form" action="{{ path('nicebundle_project_create') }}" method="post">
    {{ form_errors(form) }}
    <div class="project">
    # Here I want to show the input for project name
    {{ form_errors(form.project) }}
    {{ form_widget(form.project) }}
    </div>

    <div id="navigation-panel">
        # Here I want to show the input for project color
        {{ form_errors(form.project) }}
        {{ form_widget(form.project) }}

        {{ form_errors(form.participant) }}
        {{ form_widget(form.workgroup) }}
        {{ form_widget(form._token) }}
        <input class="btn" type="reset" value="reset" />
        <input class="btn" type="submit" value="submit" />
    </div>
</form>

Что я должен делать?

Заранее спасибо.

01.06.2012

Ответы:


1

Я передал ProjectType в CollaborationType следующим образом:

# MyNiceBundle/Form/Type/CollaborationType.php
public function buildForm(FormBuilder $builder, array $options)
{
    $builder->add('project', new ProjectType());
    $builder->add('participant', 'entity', array(
        'class' => 'BtaskUserBundle:User',
        'property' => 'email',
        'multiple' => false,
        'expanded' => true
    ));
    $builder->add('workgroup', 'entity', array(
        'class' => 'BtaskBoardBundle:Workgroup',
        'property' => 'name',
        'multiple' => false,
        'expanded' => true
    ));
}

# Resources/Views/project_form.html.twig
<form id="workgroup-form-create" class="form" action="{{ path('MyNiceBundle_project_create') }}" method="post" {{ form_enctype(form) }}>
    {{ form_errors(form) }}
    <div class="project">
    {{ form_errors(form.project) }}
    {{ form_widget(form.project) }}
    </div>

    <div id="navigation-panel">
        {{ form_errors(form.project) }}
        {{ form_widget(form.project) }}

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

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

        {{ form_widget(form._token) }}
        <input class="btn" type="reset" value="reset" />
        <input class="btn" type="submit" value="submit" />
    </div>
</form>
01.06.2012
Новые материалы

Учебные заметки JavaScript Object Oriented Labs
Вот моя седьмая неделя обучения программированию. После ruby ​​и его фреймворка rails я начал изучать самый популярный язык интерфейса — javascript. В отличие от ruby, javascript — это более..

Разбор строк запроса в vue.js
Иногда вам нужно получить данные из строк запроса, в этой статье показано, как это сделать. В жизни каждого дизайнера/разработчика наступает момент, когда им необходимо беспрепятственно..

Предсказание моей следующей любимой книги 📚 Благодаря данным Goodreads и машинному обучению 👨‍💻
«Если вы не любите читать, значит, вы не нашли нужную книгу». - J.K. Роулинг Эта статья сильно отличается от тех, к которым вы, возможно, привыкли . Мне очень понравилось поработать над..

Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

Как настроить Selenium в проекте Angular
Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

Аргументы прогрессивного улучшения почти всегда упускают суть
В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

Введение в Джанго Фреймворк
Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..