Обновить отдельную сущность в сборе формPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Обновить отдельную сущность в сборе форм

Сообщение Anonymous »

У меня есть страница, на которой я могу добавить/обновить некоторые объекты из базы данных. Для обновления у меня есть таблица, где я могу иметь список каждой строки из некоторой таблицы. Мне нужно иметь возможность отредактировать эту строку (сущность) и сохранить/удалить. Таким образом, это означает, что каждая строка таблицы должна иметь поля формы для одного объекта из базы данных. И я хотел иметь возможность проверить эти формы. Таким образом, у меня есть много форм с тем же типом на одной странице.

предыдущий я только что создал цикл, где я сохранил в массиве форм с тем же формой таким образом: < /p>

$formsArray = [];

foreach ($gardens as $garden) {
array_push($formsArray, $this->createForm('AppBundle\Form\GardenType', $garden)->createView());
}
< /code>

Тогда я показал его в шаблоне (twig): < /p>

{% for key, form in forms %}

{{ form_start(form, { 'attr': {'name' : 'garden ', 'action': path('ajax_garden_update', {id : form.vars.value.id}), 'role' : 'form', 'class' : 'ajaxUpdate'} }) }}
{{ form_widget(form.name) }}
{{ form_widget(form.rows) }}



{{ form_end(form) }}

{% endfor %}
< /code>

В каждой строке таблицы, которую я имею кнопку, отправляю кнопку, поэтому я могу сериализовать форму, отправлять ее на сервер и как я обновлял объект: < /p>

public function ajaxUpdateAction(Request $request, Garden $garden)
{
if ($request->isXMLHttpRequest()) {
$form = $this->createForm(GardenType::class, $garden);
$form->handleRequest($request);

if ($form->isValid()) {
$gardenManager = $this->get('app.manager.garden');
$gardenManager->updateGarden($garden);

return new JsonResponse(['code' => 202, 'status' => 'success'], 202);
} else {
$serializer = $this->get('jms_serializer');
return new JsonResponse($serializer->serialize(['error' => $form], 'json'), 500);
}
}
return new Response('Request not valid', 400);
}
< /code>

Но у меня есть ощущение, которое создает массив для форм в цикле, это плохая идея для памяти и скорости. Поэтому я попытался использовать коллекцию форм. Но проблема, которую я не понимаю, как проверить и обновить отдельную сущность из коллекции. Я получаю ошибки, когда я пытаюсь обработать запрос и проверить коллекцию.
Во -первых, я получил ошибку, которая не имеет токена CSRF (форма может иметь только один токен, поэтому я отправляю формы без токена, возможно, мне нужно найти способ генерировать токен для каждой строки). Затем я отключил защиту CSRF и получил ошибку, которая не может иметь дополнительных полей. Может, я что -то не так сделаю? Это моя коллекция. < /P>



Подробнее здесь: https://stackoverflow.com/questions/431 ... collection
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»