Задать вопрос
  • Как работать с slug в Symfony?

    В services.yaml вставил

    App\Entity\Page:
    autowire: true

    1. Уберите это.

    2. Используйте атрибут MapEntity, чтобы явно указать, на какое поле мапить параметр 'slug'

    <?php
    
    namespace App\Controller;
    
    use App\Entity\Page;
    use App\Repository\PageRepository;
    use Symfony\Bridge\Doctrine\Attribute\MapEntity;
    use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
    use Symfony\Component\HttpFoundation\Response;
    use Symfony\Component\Routing\Attribute\Route;
    
    class PageController extends AbstractController
    {
        // ...
    
        #[Route('/{slug}', name: 'show-page')]
        public function show(
            #[MapEntity(mapping: ['slug' => 'slug'])] Page $page
        ): Response
        {
            return $this->render('/page/show.html.twig', [
                'slug' => $page->getSlug(),
                'page' => $page,
            ]);
        }
    }
    Ответ написан