src/Controller/HomeController.php line 20
<?phpnamespace App\Controller;use App\Entity\File;use App\Repository\PropertyRepository;use Symfony\Component\HttpFoundation\Request;use Symfony\Component\HttpFoundation\Response;use Symfony\Component\Routing\Annotation\Route;class HomeController extends BaseController{public function __construct(private \App\Repository\MenuRepository $menuRepository,private PropertyRepository $propertyRepository,) {}#[Route('/')]public function indexNoLocale(Request $request): Response{$parameters = $request->query->all();$parameters['_locale'] = 'bg';$url = $this->generateUrl('home', $parameters);return $this->redirect($url);}#[Route('/{_locale<%app.supported_locales%>}', name: 'home')]#[Route('/{_locale<%app.supported_locales%>}/menus', name: 'menus')]public function index(Request $request): Response{$properties = [];$returnUrl = $request->get('returnUrl');try {$propertyEntities = $this->propertyRepository->findBy([], ['sort' => 'ASC',]);foreach ($propertyEntities as $propertyEntity) {$images = array_map(function (File $image) {return ['id' => $image->getId(),'sort' => $image->getSort(),];}, $propertyEntity->getFiles()->toArray());usort($images, function ($a, $b) {return $a['sort'] <=> $b['sort'];});$mainMenu = $this->menuRepository->findMainMenu($propertyEntity);$cateringMenu = $this->menuRepository->findCateringMenu($propertyEntity);$lunchMenu = $this->menuRepository->findCurrentLunch($propertyEntity);if (empty($lunchMenu)) {$lunchMenu = $this->menuRepository->findNextLunch($propertyEntity);}$properties[] = ['id' => $propertyEntity->getId(),'slug' => $propertyEntity->getSlug(),'name' => $propertyEntity->getName(),'address' => $propertyEntity->getAddress(),'phone' => $propertyEntity->getPhone(),'email' => $propertyEntity->getEmail(),'workingHours' => $propertyEntity->getWorkingHours(),'images' => $images,'hasMainMenu' => !empty($mainMenu),'hasCateringMenu' => !empty($cateringMenu),'hasLunchMenu' => !empty($lunchMenu),'city' => $propertyEntity->getCity(),'whitelabel' => $propertyEntity->getWhitelabel(),];}return $this->render($this->getTemplatePath('index/home.html.twig'), ['returnUrl' => $returnUrl,'properties' => $properties,]);} catch (\ErrorException $e) {return $this->render($this->getTemplatePath('index/home.html.twig'), ['returnUrl' => $returnUrl,'error' => ['message' => $e->getMessage(),],]);}}}