turk porno porno escort rokettube
Ergebnis 1 bis 1 von 1

Thema: Hydrator in mehreren Joins

  1. #1
    Neuer Benutzer
    Registriert seit
    28.11.2016
    Beiträge
    17
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard Hydrator in mehreren Joins

    Hi,

    ich habe drei Tabellen, die miteinander über Foreign-Key verknüpft.
    Sowie hier unten dargestellt:

    Bildschirmfoto 2017-04-27 um 18.45.02.jpg





    Ich mache Joins über Tablegateway. Ich bekomme aber nicht das Objekt "Language" zu "Movie" hydriert.


    In meiner DbStorage habe ich :


    PHP-Code:
    public function fetchDvdCollection(){
        
    $select $this->tableGateway->getSql()->select();
        
    $select $this->addMovieJoinToSelect(select);
        
    $select $this->addLanguageJoinToSelect(select);
     
       
    $resultSet $this->tableGateway->selectWith($select);
        ...
    }

    private function 
    addMovieJoinToSelect(Select $select){
        
    $select ->join('MOVIE'), 'DVD.MOVIE_ID = MOVIE.ID', [
            
    'MOVIE_ID' => 'ID',
            
    'MOVIE_ID' => 'LANGUAGE_ID',
        ]);
        return 
    $select
    }

    private function 
    addLANGUAGEJoinToSelect(Select $select){
        
    $select ->join('LANGUAGE'), 'DVD.LANGUAGE_ID = LANGUAGE.ID', [
            
    'LANGUAGE_ID' => 'ID',
            
    'LANGUAGE_LANGUAGE' => 'LANGUAGE',
        ]);
        return 
    $select;
     } 

    Und in die Beiden EntityStrategy Hydrator:
    PHP-Code:
    class MovieEntityStrategy implements StrategyInterface{
    ...
      public function 
    hydrate($value$data = [])
          {
              
    $movieData = [];
              foreach (
    $data as $key => $value) {
                  if (
    substr($key06) != 'MOVIE_') {
                      continue;
                  }
                  
    $movieData[substr($key6)] = $value;
              }
              
    $movieEntity = new MovieEntity();
              
    $this->hydrator->hydrate($movieData$movieEntity);
              return 
    $movieEntity;
          }
    }

    class 
    LanguageEntityStrategy implements StrategyInterface{
    ...
      public function 
    hydrate($value$data = [])
          {
              
    $languageData = [];
              foreach (
    $data as $key => $value) {
                  if (
    substr($key09) != 'LANGUAGE_') {
                      continue;
                  }
                  
    $languageData[substr($key9)] = $value;
              }
              
    $languageEntity = new LanguageEntity();
              
    $this->hydrator->hydrate($languageData$languageEntity);
              return 
    $companyEntity;
          }


    Dann letztendlich in der Konstraktor meiner DvDHydrator-Klassen:
    PHP-Code:
    ...  

    $this->addStrategy('MOVIE_ID', new MovieEntityStrategy(new MovieHydrator)));

    // Das ist definitiv falsch  
    // Ich bin nicht sicher wie ich hier mache?  
    $this->addStrategy('LANGUAGE_ID', new LanguageEntityStrategy(new LanguageHydrator)));

    ... 

    Das Entity "Movie" ist auf jedenfall in Entity "DvD" gemappt.
    Wie kann ich hinkriegen, dass das Entity "Language" in das Entity "Movie" hydriert und gemappt ist?


    Danke im Voraus.


    Schöne Grüße,


    Codescratch
    Angehängte Grafiken Angehängte Grafiken

Ähnliche Themen

  1. Select - Join - Hydrator - ohne Funktion?
    Von rainman1983 im Forum Zend Framework 3 Buch
    Antworten: 21
    Letzter Beitrag: 20.02.2017, 08:22
  2. Hydrator: Entities befüllen
    Von frollein im Forum ZF2 Formulare
    Antworten: 0
    Letzter Beitrag: 21.03.2013, 11:06
  3. Result aus Hydrator in View verwenden
    Von Cube im Forum ZF2 Einsteigerfragen
    Antworten: 2
    Letzter Beitrag: 16.01.2013, 20:00
  4. Result aus Hydrator in View verwenden
    Von Cube im Forum ZF2 Installation & Konfiguration
    Antworten: 0
    Letzter Beitrag: 16.01.2013, 18:18
  5. MySQL - Joins
    Von Playa187 im Forum DB
    Antworten: 13
    Letzter Beitrag: 15.08.2010, 20:54

Lesezeichen

Berechtigungen

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