<?php
namespace App\Controller\Super;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use App\Entity\Announcement;
use App\Entity\AnnouncementAttachment;
use App\Form\AttachmentType;
/**
*
* @Route("/super/announcement-attachment/", name="super_announcement_attachment_")
* @author "wendell.zheng <wxzheng@ustc.edu.cn>"
*/
class AnnouncementAttachmentController extends BaseController
{
/**
*
* @Route("list/{id}", name="list", requirements={"id"="\d+"})
*/
public function list(Announcement $announcement): Response
{
return $this->render('super/announcement_attachment/list.html.twig', [
'name' => $this->getLowerName(),
'title' => $announcement->getName() . ' - 附件列表',
'announcement' => $announcement,
'entities' => $announcement->getAttachments()
]);
}
/**
*
* @Route("new/{id}", name="new", requirements={"id"="\d+"})
*/
public function new(Announcement $announcement, Request $request): Response
{
$attachment = new AnnouncementAttachment();
$attachment->setAnnouncement($announcement);
$form = $this->createForm(AttachmentType::class, $attachment);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$this->em->persist($attachment);
$this->em->flush();
$this->addFlash('notice', '操作成功');
return $this->redirectToRoute($this->getListRoute(), [
'id' => $announcement->getId()
]);
}
return $this->render('super/announcement_attachment/edit.html.twig', [
'name' => $this->getLowerName(),
'title' => $announcement->getName() . ' - 新建附件',
'announcement' => $announcement,
'form' => $form->createView()
]);
}
/**
*
* @Route("delete/{id}", name="delete", requirements={"id"="\d+"})
*/
public function delete(AnnouncementAttachment $attachment): Response
{
return $this->doDelete($attachment, 'super_announcement_attachment_list', [
'id' => $attachment->getAnnouncement()
->getId()
]);
}
}