Мне нужно создать и изменить действие, используя ту же форму.Это моя форма:
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 }} {{ entity.createBy.lastName }}</td>
<td>{{ entity.category.name }}</td>
<td>{{ entity.sum|number_format(2, '.', ',') }} 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 %}
Я хочу использовать эту же форму для создания и редактирования.Как создать действие редактирования?Я хочу нажать кнопку «Изменить» в параметрах моей таблицы, и после этого выбранное подразделение будет загружено в мою форму, а кнопка изменит название для обновления.А после нажатия кнопки Обновить сущность будет редактироваться.
Спасибо за помощь всем.