Создание и редактирование действий с использованием той же формы Symfony2 - PullRequest
0 голосов
/ 28 октября 2018

Мне нужно создать и изменить действие, используя ту же форму.Это моя форма:

 public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('category', 'entity', array(
        'class' => 'IncomingBundle:IncomingCategories',
        'property' => 'name',
        'expanded' => false,
        'multiple' => false                               
    ))
        ->add('sum', 'number', array(
        'invalid_message' => 'Wrong format use only numbers'
        ));

}

И это мой indexAction. Я добавляю сюда новую сущность и показываю сущности в таблице:

 /**
 * @Route("/incoming", name="incoming")
 * @Template()
 * @param Request $request
 * @return array
 */
public function indexAction(Request $request)
{
    $entities = $this->getIncomingEntities();
    $incoming = new Incoming();
    $form = $this->createForm(new IncomingFormType(), $incoming);
    $form->handleRequest($request);
    if ($form->isSubmitted() && $form->isValid()) {
        $user = $this->getUser();
        $incoming->setCreateBy($user);
        $date = new \DateTime();
        $incoming->setCreateAt($date);
        $em = $this->getDoctrine()->getManager();
        $em->persist($incoming);
        $em->flush();
        $request->getSession()
            ->getFlashBag()
            ->add('success', 'Pomyślnie dodano nowy wpływ');
        return $this->redirect($this->generateUrl('incoming'));
    }
    return array(
        'form' => $form->createView(),
        'incoming' => $incoming,
        'entities' => $entities
    );
}

Я показываю свои сущности в таблице и в однойстолбец у меня есть редактировать и удалять кнопки действий.

Это мой TWIG:

 {% extends "::layout_base.html.twig" %}
{% block title %} Wpływy | Accountant {% endblock %}
{% block content %}
{{ parent() }}
        <h2 style="color: #ffc107; margin-bottom: 50px;"><i class="fa fa-arrow-up" style="margin-right: 15px; color: #0A0A0A"></i>Wpływy <small style="color: #0A0A0A">> Lista</small></h2>
        <form method="post" action="{{ path('incoming') }}" novalidate="novalidate">
            <div class="alert">
                {{ form_errors(form) }}
            </div>
        <div class="row" style="margin-top: 50px; margin-bottom: 50px; text-align: center" >
            <div class=".col-md-1"></div>
            <div class="col-md-4">
               {{ form_row(form.category, {'label': 'Category: '}) }}
            </div>
            <div class="col-md-4">
                {{ form_row(form.sum, {'label': 'Sum: '}) }}
            </div>
            {{ form_rest(form) }}
            <div class="col-md-4">
                <input class="btn btn-primary" type="submit" value="Add new"/>
        </div>
        <div class=".col-md-1"></div>
    </div>
    </form>

    <table class="table table-hover" style="margin-bottom: 40px">
        <tr>
            <th>Lp</th>
            <th>Add date</th>
            <th>Add by</th>
            <th>Category</th>
            <th>Sum</th>
            <th>Options</th>
        </tr>
        {% set countner = 1 %}
        {% for entity in entities %}
        <tr>
            <td>{{ countner }}</td>
            <td>{{ entity.createAt.date|date('Y-m-d H:m') }}</td>
            <td>{{ entity.createBy.firstName }}&nbsp;{{ entity.createBy.lastName }}</td>
            <td>{{ entity.category.name }}</td>
            <td>{{ entity.sum|number_format(2, '.', ',') }}&nbsp;zł</td>
            <td>
                <a href="" title="Edit" style="margin-right: 5px;"><i class="fa fa-edit" style="font-size: 20px; color: blue;"></i></a>
                <a href="{{ path('deleteIncoming', { 'incoming': entity.id }) }}" title="Delete" style="margin-right: 5px;"><i class="fa fa-remove" style="font-size: 20px; color: red;"></i></a>
            </td>
        </tr>
            {% set countner = countner + 1 %}
        {% endfor %}
    </table>
{% endblock %}

Я хочу использовать эту же форму для создания и редактирования.Как создать действие редактирования?Я хочу нажать кнопку «Изменить» в параметрах моей таблицы, и после этого выбранное подразделение будет загружено в мою форму, а кнопка изменит название для обновления.А после нажатия кнопки Обновить сущность будет редактироваться.

Спасибо за помощь всем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...