src/Network/Controller/NetworkRacetrackController.php line 55

Open in your IDE?
  1. <?php
  2. namespace App\Network\Controller;
  3. use App\Network\Form\Type\RacetrackFilterType;
  4. use App\Profile\Model\Profile;
  5. use Doctrine\DBAL\Query\QueryBuilder;
  6. use Knp\Component\Pager\PaginatorInterface;
  7. use Pimcore\Controller\FrontendController;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. #[Route([
  12.   'name' => 'network_raceclub_',
  13.   'localizedPaths' => [
  14.     'en' => '/{_locale}/network/racetrack',
  15.     'de' => '/{_locale}/netzwerk/rennbahn',
  16.     'fr' => '/{_locale}/reseau/hippodrome',
  17.   ],
  18. ])]
  19. class NetworkRacetrackController extends FrontendController
  20. {
  21.   #[Route('/'name'index')]
  22.   // Rennbahnübersichtsseite
  23.   public function index(Request $requestPaginatorInterface $paginator): Response
  24.   {
  25.     $racetracks Profile::getList();
  26.     $country $request->get('country'null);
  27.     $filter $this->createForm(RacetrackFilterType::class, [
  28.       'country' => $country,
  29.     ], ['method' => 'get']);
  30.     $filter->handleRequest($request);
  31.     $racetracks->onCreateQueryBuilder(function (QueryBuilder $queryBuilder) {
  32.       $queryBuilder->innerJoin('object_profile''object_brick_query_RacetrackProfile_profile''racetrack''object_profile.oo_id = racetrack.o_id');
  33.     });
  34.     if ($country) {
  35.       $racetracks->addConditionParam('country = :country', ['country' => $country]);
  36.     }
  37.     $racetracks->setOrderKey('company');
  38.     $racetracks->setOrder('asc');
  39.     $paginator $paginator->paginate(
  40.       $racetracks,
  41.       $request->get('page'1),
  42.       10
  43.     );
  44.     return $this->renderForm('network/profile/racetracks/listing.html.twig', [
  45.       'racetracks' => $paginator,
  46.       'filter' => $filter,
  47.     ]);
  48.   }
  49. }