turk porno porno escort rokettube
Ergebnis 1 bis 2 von 2

Thema: Spaltenname in der DB Service Config angeben

  1. #1
    Erfahrener Benutzer
    Registriert seit
    30.09.2010
    Beiträge
    129
    Thanks
    6
    Thanked 3 Times in 1 Post

    Standard Spaltenname in der DB Service Config angeben

    Hallo,

    Zum Zugriff auf eine Datebank habe ich momentan folgendes in meiner Module.php:

    PHP-Code:
    public function getServiceConfig()
    {
        return array(
            
    'factories' => array(
                
    'ZendSkeletonModule\Model\UserTable' =>  function($sm) {
                    
    $tableGateway $sm->get('UserTableGateway');
                    
    $table = new UserTable($tableGateway);
                    return 
    $table;
                },
                
    'UserTableGateway' => function ($sm) {
                    
    $dbAdapter $sm->get('Zend\Db\Adapter\Adapter');
                    
    $resultSetPrototype = new ResultSet();
                    
    $resultSetPrototype->setArrayObjectPrototype(new User());
                    return new 
    TableGateway('sa_super_accounts'$dbAdapternull$resultSetPrototype);
                },
            ),
        ); 
    Dies führt bei einem fetchAll() in Model der UserTable immer zum Statement
    Code:
    'SELECT `sa_super_accounts`.* FROM `sa_super_accounts`'
    Ich möchte aber, dass er die Spalte 'AccountName' aus 'sa_super_accounts' holt.

    Kann ich irgendwie den Spaltennamen noch in der Service Config mit angeben? Oder wie ist die best practice dafür?

    Weiteren Code gerne auf Anfrage.

    Danke.

  2. #2
    Super-Moderator Avatar von Kaiuwe
    Registriert seit
    30.12.2006
    Beiträge
    5.520
    Thanks
    4
    Thanked 356 Times in 287 Posts

    Standard

    Zitat Zitat von Frau Bauer Beitrag anzeigen
    Ich möchte aber, dass er die Spalte 'AccountName' aus 'sa_super_accounts' holt.
    Wenn die Spalte in der Tabelle vorhanden ist, dann bekommst du diese doch bereits?! Oder möchtest du nur die Spalte „AccountName“? In deiner Klasse „UserTable“ hast du vollen Zugriff auf die „TableGateway“-Klasse und kannst dort Spalten angeben.

    PHP-Code:
    $select $this->tableGateway->getSql()->select();
    $select->columns(['AccountName']);

    $resultSet $this->tableGateway->selectWith($select); 
    Zitat Zitat von Frau Bauer Beitrag anzeigen
    Kann ich irgendwie den Spaltennamen noch in der Service Config mit angeben? Oder wie ist die best practice dafür?
    Bezogen auf deinen Code-Auszug bedeutet „Best Practice“ folgendes:

    • alle Closures aus der Konfiguration verbannen!
    • neuen zend-servicemanager und PSR-11 verwenden
    • das Interface für den Adapter von zend-db verwenden
    • eher ein Repository erstellen, als eine Klasse „UserTable“, „AlbumTable“ oder ähnliches *


    Warum? Komplexität verringern, Abhängigkeiten abbauen und klare Strukturen schaffen.
    Dies wiederum reduziert Frust, steigert die Freude an der Weiterentwicklung und sorgt für erholsame und sorgenfrei Freizeit!


    * Der Begriff „Table“ weist nach wie vor auf die Art der Speicherung hin, dies interessiert aber in der eigentlichen Anwendung nicht und ist problematisch wenn der Datenspeicher ausgewechselt wird.
    Geändert von Kaiuwe (28.04.2017 um 17:24 Uhr)
    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

Ähnliche Themen

  1. Antworten: 14
    Letzter Beitrag: 26.04.2010, 16:58
  2. Antworten: 6
    Letzter Beitrag: 04.09.2009, 13:16
  3. Antworten: 7
    Letzter Beitrag: 30.04.2009, 19:46
  4. Variablen in der Config.ini
    Von fr3ak im Forum Einsteigerfragen
    Antworten: 4
    Letzter Beitrag: 27.09.2007, 17:04
  5. Meine Config Klasse (Erweiterung der Zend_Config_Xml)
    Von dinok im Forum Code-Laboratory
    Antworten: 6
    Letzter Beitrag: 11.09.2007, 02:49

Lesezeichen

Berechtigungen

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