turk porno porno escort rokettube
Ergebnis 1 bis 5 von 5

Thema: Select von leeren Feldern

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

    Standard Select von leeren Feldern

    Hallo,

    ich habe folgendes Model:

    PHP-Code:
    namespace Speedy\Model;

    use 
    Zend\Db\TableGateway\AbstractTableGateway;
    use 
    Zend\Db\TableGateway\TableGateway;

    class 
    ReportAssignmentTable extends AbstractTableGateway {
       
       
       protected 
    $_tableGateway;
       
       public function 
    __constructTableGateway $reportAssignmentTableGateway ) {
          
    $this->_tableGateway $reportAssignmentTableGateway;
       }
       
       public function 
    getTableGateway() {
          return 
    $this->_tableGateway;
       }
       
       public function 
    fetchReportIdsBySuperAccountNameSuperAccount $superAccount ) {
          
    $resultSet $this->getTableGateway()->select( array(
                                                            
    'SuperAccountName' => $superAccount->getSuperAccountName(),
                                                         ) );
          
          return 
    $resultSet;
       }
       
       public function 
    fetchReportIdByAndSuperAccountNameReportAssignment $reportAssignment ) {
          
    $resultSet $this->getTableGateway()->select( array(
                                                            
    'ReportID'         => $reportAssignment->getReportId(),
                                                            
    'SuperAccountName' => $reportAssignment->getSuperAccountName(),
                                                         ) );
          
    $row       $resultSet->current();
          
          return 
    $row;
       }

    Nun möchte ich allerdings auch alle Zeilen haben, in denen ein Nullwert für "SuperAccountName" steht.

    Ich habe schon probiert im Array eine OR-Bedingung hizuzufügen, also:
    PHP-Code:
    'SuperAccountName' => $reportAssignment->getSuperAccountName() or '' 
    Leider bringt das nicht den gewünschten Erfolg.

    Gibt es für dieses Problem eine simple Lösung, ohne, dass ich meine Anwendung komplett umstricken muss?

    Danke

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

    Standard

    Zitat Zitat von Frau Bauer Beitrag anzeigen
    PHP-Code:
    class ReportAssignmentTable extends AbstractTableGateway {
       protected 
    $_tableGateway;
       
       public function 
    __constructTableGateway $reportAssignmentTableGateway ) {
          
    $this->_tableGateway $reportAssignmentTableGateway;
       }

    Was ist das???

    Du erweiterst „AbstractTableGateway“ und übergibst dann aber im Konstruktur nochmals ein „TableGateway“-Objekt? Ergibt das für dich einen Sinn?!
    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

  3. The Following User Says Thank You to Kaiuwe For This Useful Post:

    Frau Bauer (24.10.2017)

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

    Standard

    Zitat Zitat von Frau Bauer Beitrag anzeigen
    Ich habe schon probiert im Array eine OR-Bedingung hizuzufügen, also:
    PHP-Code:
    'SuperAccountName' => $reportAssignment->getSuperAccountName() or '' 
    Leider bringt das nicht den gewünschten Erfolg.
    Weil dies auch absolut geraten ist! Frau Bauer, schon so lange hier im Forum und schon so viel Zeit mit dem ZF verbracht und dann das…!

    In einem „TableGateway“-Klasse geht folgendes:
    PHP-Code:
    $select $this->getSql()->select();

    $select->where->nest()
            ->
    isNull('SuperAccountName')
            ->
    or
            
    ->equalTo('SuperAccountName'$superAccountName)
            ->
    unnest()
            ->
    equalTo('ReportID'$reportId);

    $resultSet $this->selectWith($select); 
    Oder:
    PHP-Code:
    $resultSet $this->select(
        function (\
    Zend\Db\Sql\Select $select) use ($superAccountName$reportId) {
            
    $select->where->nest()
                ->
    isNull('SuperAccountName')
                ->
    or
                
    ->equalTo('SuperAccountName'$superAccountName)
                ->
    unnest()
                ->
    equalTo('ReportID'$reportId);
        }
    ); 
    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

  5. The Following User Says Thank You to Kaiuwe For This Useful Post:

    Frau Bauer (24.10.2017)

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

    Standard

    Zitat Zitat von Kaiuwe Beitrag anzeigen
    Weil dies auch absolut geraten ist! Frau Bauer, schon so lange hier im Forum und schon so viel Zeit mit dem ZF verbracht und dann das…!
    Zuerst einmal (wieder) herzlichen Dank für deine entscheidenden Hinweise. Geraten ist es in der Tat. Ist doch aber eigentlich naheliegend, oder?

    Zitat Zitat von Kaiuwe Beitrag anzeigen
    Du erweiterst „AbstractTableGateway“ und übergibst dann aber im Konstruktur nochmals ein „TableGateway“-Objekt? Ergibt das für dich einen Sinn?!
    Jetzt, wo du mich darauf hinweist. Nein, natürlich überhaupt nicht. Die Table Klassen stammen noch aus dem Album-Beispiel aus der release-Ära des ZF2. Vielleicht hat das da mal so dringestanden. Möchte ich jetzt aber auch nicht vertiefen ;-)

    Deine Beispiele probiere ich gleich mal in die Tat umzusetzten. Leider habe ich wohl etwas defizite beim Suchen in der Doku. So wäre ich ohne dich niemals darauf gekommen, nach der nest()-Methode zu suchen.

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

    Standard

    Zitat Zitat von Frau Bauer Beitrag anzeigen
    Die Table Klassen stammen noch aus dem Album-Beispiel aus der release-Ära des ZF2. Vielleicht hat das da mal so dringestanden. Möchte ich jetzt aber auch nicht vertiefen
    Nein, denn ein „TableGateway“ in einem „TableGateway“ ergibt so absolut keinen Sinn. Folgende Änderung reicht:

    PHP-Code:
    use Zend\Db\Adapter\AdapterInterface;

    class 
    ReportAssignmentTable extends AbstractTableGateway
    {
       public function 
    __construct(AdapterInterface $adapter) {
            
    $this->table   'my_table';
            
    $this->adapter $adapter;

            
    $this->initialize();
        }

        public function 
    fetchReportIdsBySuperAccountNameSuperAccount $superAccount ) {
          return 
    $this->select(['SuperAccountName' => $superAccount->getSuperAccountName()]);
       }

       
    // …

    Zitat Zitat von Frau Bauer Beitrag anzeigen
    Leider habe ich wohl etwas defizite beim Suchen in der Doku. So wäre ich ohne dich niemals darauf gekommen, nach der nest()-Methode zu suchen.
    Du bekommst mit der Methode „getSql“ ein „Zend\Db\Sql\Select“ und dies ist unter „zend-db – SQL Abstraction“ dokumentiert. Dort findest du auch das Beispiel mit „nest“ und „unnest“:

    Code:
    SELECT * WHERE (column1 is null or column1 = 2) AND (column2 = 3)
    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

  8. The Following User Says Thank You to Kaiuwe For This Useful Post:

    Frau Bauer (25.10.2017)

Ähnliche Themen

  1. Zusammenlegen von Form Feldern (Decoratoren)
    Von Sagattarii im Forum Einsteigerfragen
    Antworten: 21
    Letzter Beitrag: 19.04.2011, 19:03
  2. Cache leeren? Änderungen an Datei werden nicht wirksam
    Von nYmo im Forum Einsteigerfragen
    Antworten: 4
    Letzter Beitrag: 15.04.2010, 18:58
  3. PHPUnit, testen von value bei input Feldern
    Von Schnoop im Forum Testing & Deployment
    Antworten: 0
    Letzter Beitrag: 30.10.2009, 19:06
  4. Integration von Enum Feldern
    Von deetee im Forum PHP X-Talk
    Antworten: 30
    Letzter Beitrag: 15.09.2009, 21:26
  5. dynamische Anzahl von Input Feldern in Zend_Form
    Von badrulecracker im Forum Formulare
    Antworten: 1
    Letzter Beitrag: 21.03.2009, 02:15

Lesezeichen

Berechtigungen

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