У меня есть страница, на которой я могу добавить/обновить некоторые объекты из базы данных. Для обновления у меня есть таблица, где я могу иметь список каждой строки из некоторой таблицы. Мне нужно иметь возможность отредактировать эту строку (сущность) и сохранить/удалить. Таким образом, это означает, что каждая строка таблицы должна иметь поля формы для одного объекта из базы данных. И я хотел иметь возможность проверить эти формы. Таким образом, у меня есть много форм с тем же типом на одной странице.
предыдущий я только что создал цикл, где я сохранил в массиве форм с тем же формой таким образом: < /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
Обновить отдельную сущность в сборе форм ⇐ Php
Кемеровские программисты php общаются здесь
1740459960
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) }}
[i][/i]
{{ 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>
Подробнее здесь: [url]https://stackoverflow.com/questions/43145040/update-single-entity-in-form-collection[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия