У меня есть сущность ProductPhoto, у которой есть свойство order (0 = первое).
На странице я перечисляю все изображения моего текущего продукта. Я хотел бы управлять порядком изображений с помощью двух стрелок вверх/вниз.
Когда пользователь нажимает на стрелку, изображение перемещается вверх/вниз по сравнению с другими.< /p>

Итак, на каждой стрелке есть ссылка, соответствующая действию маршрута в моем ProductController.
Это не очень сложно обновить только порядок перемещенного изображения, но я не знаю, как обновить порядок других изображений в ArrayCollection...
Код: Выделить всё
/**
* Manage picture order
*
* @Route("/products/{id}/photos/{idphoto}/move-{direction}", name="prod_move_photo")
*/
public function movePhotoAction($id, $idphoto, $direction, Request $request) {
$em = $this->getDoctrine()->getManager();
$photo = $em->getRepository('AppBundle:ProductPhoto')->find($idphoto);
if ($direction == 'up') {
$order = $photo->getOrder() - 1;
if ($order >= 0)
$photo->setOrder($order);
else
$photo->setOrder(0);
} elseif ($direction == 'down') {
$order = $photo->getOrder() + 1;
$photo->setOrder($order);
} else {
throw $this->createNotFoundException("The type of ordering '" . $direction . "' doesn't exist.");
}
$em->flush();
// redirection
return $this->redirectToRoute('prod_photos', array('id' => $id));
}
Подробнее здесь: https://stackoverflow.com/questions/490 ... ute-action
Мобильная версия