Ergebnis 1 bis 4 von 4

Thema: 5.3 PageUrlGenerator geht nicht

  1. #1
    Contao-Nutzer
    Registriert seit
    02.08.2009.
    Beiträge
    69

    Standard 5.3 PageUrlGenerator geht nicht

    Moin Community,

    ich versuche in Contao 5.3 in einem Template per PHP anhand einer ID einen Link zu basteln.
    Bisher hatte ich immer getFrontendUrl genommen, das aber nun als deprecated eingestuft ist.

    Also habe ich die neue Methode versucht, aber das will nicht so recht klappen.
    Kann mir PHP Noob jemand auf die Sprünge helfen?



    PHP-Code:

    use Contao\CoreBundle\Routing\PageUrlGenerator;
    use 
    Contao\System;
    use 
    Symfony\Component\Routing\Generator\UrlGeneratorInterface;
    use 
    Contao\PageModel;

    $pageIndex 4;
    $page PageModel::findByPk($pageIndex); // Seite anhand der ID laden
    $urlGenerator System::getContainer()->get(PageUrlGenerator::class);
            
    // URL für die Seite generieren 
    $url $urlGenerator->generate($pageUrlGeneratorInterface::ABSOLUTE_PATH);
    echo 
    '<a href="' $url '">' htmlspecialchars($page->title) . '</a>'
    request.CRITICAL: Uncaught PHP Exception Symfony\Component\DependencyInjection\Exception\Se rviceNotFoundException: "You have requested a non-existent service "Contao\CoreBundle\Routing\PageUrlGenerator"." at Container.php line 263 {"exception":"[object] (Symfony\\Component\\DependencyInjection\\Exceptio n\\ServiceNotFoundException(code: 0)

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    37.191
    Partner-ID
    10107

    Standard

    Contao\CoreBundle\Routing\PageUrlGenerator gibt es nicht. Du meinst vermutlich Contao\CoreBundle\Routing\ContentUrlGenerator. Und den holst du dir so:

    PHP-Code:
    $contentUrlGenerator Contao\System::getContainer()->get('contao.routing.content_url_generator'); 
    » sponsor me via GitHub or Revolut

  3. #3
    Alter Contao-Hase
    Registriert seit
    24.02.2021.
    Beiträge
    1.489
    Partner-ID
    11715
    Contao-Projekt unterstützen

    Support Contao

    Standard

    * Edit - Spooky war schneller aber schau unten, da ist ein ungetestetes Beispiel

    Zitat Zitat von whitedrow Beitrag anzeigen
    Moin Community,

    ich versuche in Contao 5.3 in einem Template per PHP anhand einer ID einen Link zu basteln.
    Bisher hatte ich immer getFrontendUrl genommen, das aber nun als deprecated eingestuft ist.

    Also habe ich die neue Methode versucht, aber das will nicht so recht klappen.
    Kann mir PHP Noob jemand auf die Sprünge helfen?



    PHP-Code:

    use Contao\CoreBundle\Routing\PageUrlGenerator;
    use 
    Contao\System;
    use 
    Symfony\Component\Routing\Generator\UrlGeneratorInterface;
    use 
    Contao\PageModel;

    $pageIndex 4;
    $page PageModel::findByPk($pageIndex); // Seite anhand der ID laden
    $urlGenerator System::getContainer()->get(PageUrlGenerator::class);
            
    // URL für die Seite generieren 
    $url $urlGenerator->generate($pageUrlGeneratorInterface::ABSOLUTE_PATH);
    echo 
    '<a href="' $url '">' htmlspecialchars($page->title) . '</a>'
    request.CRITICAL: Uncaught PHP Exception Symfony\Component\DependencyInjection\Exception\Se rviceNotFoundException: "You have requested a non-existent service "Contao\CoreBundle\Routing\PageUrlGenerator"." at Container.php line 263 {"exception":"[object] (Symfony\\Component\\DependencyInjection\\Exceptio n\\ServiceNotFoundException(code: 0)
    Wo hast du das Beispiel her, dass du das hier nutzen sollst?
    PHP-Code:
    $urlGenerator System::getContainer()->get(PageUrlGenerator::class); 
    Siehe Doku:
    https://docs.contao.org/dev/framewor...ntent-routing/

    Vermutlich brauchst du etwas in der Art hier (ungetestet)
    PHP-Code:
    $pageIndex 4;
    $pageModel = \Contao\PageModel::findById($pageIndex)
    $url = \Contao\System::getContainer()->get('contao.routing.content_url_generator')->generate($pageModel); 
    Geändert von zoglo (09.07.2025 um 16:40 Uhr) Grund: Spooky war schneller

  4. #4
    Contao-Nutzer
    Registriert seit
    02.08.2009.
    Beiträge
    69

    Standard

    Mega!

    Hat geklappt, danke!

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •