Мне нужна помощь, чтобы решить мою проблему. У меня есть страница с моим списком "equipos". Каждое «equipo» в таблице имеет кнопку «Edit», а на странице отображается еще одна кнопка для добавления нового «equipos».
Пока мне удается вызывать модальный для NEW с помощью {{render ()}} Синтаксис equipoNewModal работает нормально, потому что это маршрут "stati c" (/ equipo / new) в Symfony; но EDIT не работает, потому что я не могу передать переменную "equipo" в equipoEditModal и получить идентификатор для завершения маршрута (/equipo/{id}/edit
) и вызвать контроллер.
Symfony can ' t отобразить страницу и вернуть ошибку: переменная "equipo" не существует.
С контроллером проблем нет, если я создаю тег с href = {{path ('edit_equipo', {'id ': equipo.id})}} в списке. html .twig шаблон и пропустите модал, который я могу редактировать на каждом оборудовании. Чтобы отклонить контроллер, если я жестко закодировал строку:
{{ form_start(equipoForm, {'action': path('edit_equipo', {'id': equipo.id})}) }}
в редактировании. html .twig to:
{{ form_start(equipoForm, {'action': path('edit_equipo', {'id': 1})}) }}
действие редактирования работает, конечно, для каждого оборудования действие edit вызывает издание элемента с id = 1 в базе данных, но говорит, что контроллер работает нормально.
Я что-то упустил и надеюсь, что сообщество найдет решение ... извините, мой engli sh.
==============
список. html .twig
<table id="datatable-buttoms" class="table table-striped table-bordered">
<thead>
<tr>
<th>ID</th>
<th>EQUIPOS</th>
</tr>
</thead>
<tbody>
{% for equipo in equipos %}
<tr>
<td>{{ equipo.id }}</td>
<td>{{ equipo.equipo }}</td>
<td>{{ equipo.nomenclador }}</td>
<td>{{ equipo.nomenclador.especialidad }}</td>
<td>
<button type="button" class="btn btn-primary" href="" data-toggle="modal" data-target="#equipoEditModal">
Editar
</button>
<button type="button" class="btn btn-danger" href="" data-toggle="modal" data-target="#equipoDeleteModal">
Eliminar
</button>
</td>
</tr>
{{ render(controller('AppBundle:Equipo:edit', {'id': equipo.id})) }}
{% endfor %}
</tbody>
</table>
<button type="button" class="btn btn-primary" href="" data-toggle="modal" data-target="#equipoNewModal">
Agregar
</button>
{{ render(controller('AppBundle:Equipo:new')) }}
==== =========
new. html .twig
<div class="modal fade" id="equipoNewModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">NUEVO</h4>
</div>
<div class="modal-body">
{{ form_start(equipoForm, {'action': path('new_equipo')}) }}
{{ form_widget(equipoForm) }}
<button type="submit" class="btn btn-primary">Guardar</button>
{{ form_end(equipoForm) }}
</div>
</div>
</div>
</div>
==============
edit. html .twig
<div class="modal fade" id="equipoEditModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">EDITAR</h4>
</div>
<div class="modal-body">
{{ form_start(equipoForm, {'action': path('edit_equipo', {'id': equipo.id})}) }}
{{ form_widget(equipoForm) }}
<button type="submit" class="btn btn-primary">Guardar</button>
{{ form_end(equipoForm) }}
</div>
</div>
</div>
</div>
===============
Edit Controller
/**
* @Route("/equipo/{id}/edit", name="edit_equipo")
*/
public function editAction(Request $request, Equipo $equipo)
{
$form = $this->createForm(EquipoFormType::class, $equipo);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$equipo = $form->getData();
$em = $this->getDoctrine()->getManager();
$em->persist($equipo);
$em->flush();
return $this->redirectToRoute('list_equipos');
}
return $this->render('sysreport/equipos/edit.html.twig', [
'equipoForm' => $form->createView(),
]);
}
EDIT :
Чтобы решить эту проблему, добавьте только строку, которую @Nobady говорит в контроллере editAction ...
Чтобы вызвать каждый модал в зависимости от цели изменения данных оборудования в списке. html .twig файл:
<button type="button" class="btn btn-primary" href="" data-toggle="modal" data-target="#equipo{{ equipo.id }}">
и, конечно, в редактировании. html .twig файл тоже:
<div class="modal fade" id="equipo{{ equipo.id }}">