entityManager->getRepository(self::ENTITY)->findAll(); $acquiredItems = array_filter($items, static fn (Gpu $item) => $item->isAcquired()); $newItems = array_filter($items, static fn ($item) => ! $item->isAcquired()); $filter = static fn (array $itemTypes) => array_filter($acquiredItems, static fn (Gpu $item) => in_array($item->getCardKey(), $itemTypes, TRUE)); $cardTypes = SlotKey::getGroups(); $pcieCardTypes = $cardTypes['PCI Express']; $agpCardTypes = $cardTypes['AGP']; $pciCardTypes = array_merge($cardTypes['PCI 32-bit'], $cardTypes['PCI 64-bit']); $isaCardTypes = $cardTypes['ISA']; return $this->render('gpu/index.html.twig', [ 'gpus' => [ 'not_acquired' => $newItems, 'acquired' => $acquiredItems, 'pcie' => $filter($pcieCardTypes), 'agp' => $filter($agpCardTypes), 'pci' => $filter($pciCardTypes), 'isa' => $filter($isaCardTypes), ], ]); } #[Route('/new', name: 'gpu_new', methods: ['GET', 'POST'])] public function new(Request $request): Response { return $this->itemCreate($request, 'gpu'); } #[Route('/{id}', name: 'gpu_show', methods: ['GET'])] public function show(Gpu $gpu): Response { return $this->itemView($gpu, 'gpu'); } #[Route('/{id}/edit', name: 'gpu_edit', methods: ['GET', 'POST'])] public function edit(Request $request, Gpu $gpu): Response { return $this->itemUpdate($request, $gpu, 'gpu'); } #[Route('/{id}', name: 'gpu_delete', methods: ['POST'])] public function delete(Request $request, Gpu $gpu): Response { return $this->deleteCSRF($request, $gpu); } /** * Moves a gpu to the previouslyOwned table * * @throws LogicException * @throws ORMInvalidArgumentException */ #[Route(path: '/{id}/deacquire', name: 'gpu_deacquire', methods: ['POST'])] public function reacquireAction(Request $request, Gpu $gpu): RedirectResponse { return $this->itemDeacquire($request, $gpu, 'previously-owned-gpu_index'); } /** * Creates a form to move * * @param gpu $gpu The gpu entity */ private function createDeacquireForm(gpu $gpu): FormInterface { return $this->buildForm($gpu, 'gpu_deacquire'); } }