Вопрос по Symfony 4, можно и ниже. В общем ломаю голову как сделать чтоб по нажатию кнопки появлялась такая же запись только с другим айди, ++ от максимального к примеру
По нажатию на желтую кнопку copy ниже появляется такая же запись только id равен 2
через запросы? тогда как правильно передать переменную которая хранит id записи для ее копирования? для, к примеру, удаления есть такой роутинг @Route("/{id}", name="pack_delete", methods="DELETE")
Вот такой Вариант не работает как подсказали ниже, мне кажется что за место remove в $em->remove($ability); нужно использовать что-то другое, удаление тоже не помогло
/**
* @Route("/copy/{id}", name="ability_copy", methods="GET|POST")
*/
public function copy(Request $request, Ability $ability): Response
{
if ($this->isCsrfTokenValid('copy'.$ability->getId(), $request->request->get('_token'))) {
$em = $this->getDoctrine()->getManager();
$em->remove($ability);
$em->flush();
}
return $this->redirectToRoute('ability_index');
}
Решил все самым наверно костыльным способом, прошу, если кто-то знает способ красивей опишите ниже Мой вариант с коментариями
AbilityController.php
/**
* @Route("/copy/{id}", name="ability_copy", methods="GET|POST")
*/
public function copy(Request $request, Ability $ability): Response
{
$entityManager = $this->getDoctrine()->getManager(); //получение entityManager"ера
$connection = $entityManager->getConnection(); //получение коннекшина к дефолтной базе данных
$copingId = $ability->getId(); //получние {id} из роутинга
$mappings = $this->getDoctrine()->getManager()->getClassMetadata(Ability::class);
$fieldNames = $mappings->getFieldNames(); //получаем массив названий столбцов
array_shift($fieldNames); //удаляет первый элемент массива [0]=> int(1) "id"
$valuesString = implode("`,`", $fieldNames);//из массива получаем строку вида idItem','code','reloadTime','durationTime','idAbilityType','dateCreated','author','dateChange','lastAuthor
$sqlAddEntry = "INSERT INTO Ability (`".$valuesString."`) SELECT `".$valuesString."` FROM Ability WHERE id = $copingId;"; //INSERT INTO Ability (`code`...) SELECT `code`... FROM Ability WHERE id = 1;
$stmt = $connection->prepare($sqlAddEntry); //готовим сформированный запрос
$stmt->execute(); //выполняем запрос
return $this->redirectToRoute('ability_index');
}
index.html.twig
<a class="dublicate-btn" href="{{ path('ability_copy', {'id': ability.id}) }}">Копировать запись</a>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
вот есть функция R::findAll которая выводит записи в виде массива:
Раз в сутки число увеличивается на 1 и дробится на каждое число, но число почемуто не увеличиваетсяВ чем моя ошибка:
Есть аккаунт GoogleВ гугл аналитикс добавлено несколько сайтов