Ergebnis 1 bis 4 von 4

Thema: Daten aus Tabelle holen.

  1. #1
    Contao-Nutzer
    Registriert seit
    22.10.2021.
    Beiträge
    45

    Standard Daten aus Tabelle holen.

    Ich habe Daten in der Tabelle tl_my_module_1 gespeichert über DCA konfig.


    Was ist der "Contao" Weg um die Contao Daten aus der Tabelle zu holen ?
    Bzw was ist der aktuelle empfohlene Weg ?


    Ich habe in alten Code gesehen es gibt eine
    - Database Klasse Contao/Database
    - es gibt Contao Models / Contao/PageModel
    - oder aber auch Doctrine/Dbal/Connection ...

    in der Dokumentation steht dazu kein Beispiel oder bin ich blind.

    Wenn ich in einem Backend Modul zb gespeicherte Daten in dropdown menu widget laden möchte
    was verwende ich da nun am besten ?

    Ein Besipiel wäre super.



    in meiner minimalen beispiel tabelle tl_my_module_1 sind folgende Einträge

    id tstamp tiitle
    1 .... test
    2 .... test2
    Geändert von Medy (14.11.2021 um 20:56 Uhr)

  2. #2
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.943

    Standard

    Zitat Zitat von Medy Beitrag anzeigen
    - Database Klasse Contao/Database
    - es gibt Contao Models / Contao/PageModel
    - oder aber auch Doctrine/Dbal/Connection ...
    https://en.wikipedia.org/wiki/There%...e_way_to_do_it. Ich würde eine Connection „injecten“ lassen.


    Wenn ich in einem Backend Modul zb gespeicherte Daten in dropdown menu widget laden möchte
    was verwende ich da nun am besten ?
    Das ist eher ein Thema der DCA Komfiguration oder ggf. eines Callbacks (https://docs.contao.org/dev/reference/dca/callbacks/)
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  3. #3
    Contao-Nutzer
    Registriert seit
    22.10.2021.
    Beiträge
    45

    Standard

    Zitat Zitat von fiedsch Beitrag anzeigen
    https://en.wikipedia.org/wiki/There%...e_way_to_do_it. Ich würde eine Connection „injecten“ lassen.




    Das ist eher ein Thema der DCA Komfiguration oder ggf. eines Callbacks (https://docs.contao.org/dev/reference/dca/callbacks/)
    PHP-Code:

    <?php

    // src/Controller/BackendController.php
    namespace Acme\ContaoHelloWorldBundle\Controller\BackendModule;

    use 
    Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
    use 
    Symfony\Component\Routing\Annotation\Route;
    use 
    Symfony\Component\HttpFoundation\Response;
    use 
    Twig\Environment as TwigEnvironment;
    use 
    Doctrine\DBAL\Connection;

    /**
     * @Route("/contao/my-backend-route",
     *     name=BackendController::class,
     *     defaults={"_scope": "backend"}
     * )
     */
    class BackendController extends AbstractController
    {
        private 
    $twig;
        private 
    $db;
        
        public function 
    __construct(TwigEnvironment $twigConnection $db)
        {
            
    $this->twig $twig;
            
    $this->db $db;
        }

        public function 
    __invoke(): Response
        
    {
            
    $queryBuilder $this->db->createQueryBuilder();
            
    $queryBuilder->select('*')->from('tl_my_module_1');

            
    $stm $queryBuilder->execute();
            
    $data $stm->fetchAllAssociative();


            
    dump($data);
            return new 
    Response($this->twig->render(
                
    '@ContaoHelloWorld/my_backend_route.html.twig',
                []
            ));
        }
    }
    Habe das jetzt so gemacht mt "use Doctrine\DBAL\Connection;" ... meintest du das mit injecten ?

  4. #4
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.943

    Standard

    meintest du das mit injecten
    Ja.
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

Aktive Benutzer

Aktive Benutzer

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

Lesezeichen

Lesezeichen

Berechtigungen

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