ilch Forum » Ilch CMS 2.X » Allgemein » Ilch 2.1.x und joins

Geschlossen
  1. #1
    User Pic
    MonkeyOnKeyboard Moderator
    Registriert seit
    10.02.2014
    Beiträge
    437
    Beitragswertungen
    20 Beitragspunkte
    Hallo Community,

    ich hab mal wieder ein paar fragen.

    Ich baue gerade ein Telefonbuch auf welches neben der phonenumber auch noch eine user_id drin hat.

    um daten derzeit aus dem tzelefonbuch auszulesen nutzze ich diese funktion.

        public function getPhonenumbers($where = [])
        {
            $entryArray = $this->db()->select('*')
                ->from('phonebook')
                ->where($where)
                ->order(['id' => 'DESC'])
                ->execute()
                ->fetchRows();
    
            if (empty($entryArray)) {
                return null;
            }
    
            
            
            $phonenumbers = [];
            foreach ($entryArray as $entries) {
                $entryModel = new PhonebookModel();
                $entryModel->setId($entries['id'])
                ->setUser_id($entries['user_id'])
                ->setClantag($entries['clantag'])
                ->setPhonenumber($entries['phonenumber']);
                $phonenumbers[] = $entryModel;
            }
    
            return $phonenumbers;
        }



    Jetzt möchte ich aber statt der user_id den nicknamen zu dem dazugehörigen user ausgeben und brauch ja nen join auf die user tabelle.

    aber wie geht das.


    verwendete ilch Version: 2.1.x

    betroffene Homepage: www.r1sing.de
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    blackcoder Entwickler
    Registriert seit
    22.05.2014
    Beiträge
    2.298
    Beitragswertungen
    360 Beitragspunkte
    Ich würde in Zeile 11 ein leeres Array zurückgeben, anstatt null - vor allem wenn das Ergebnis von getPhonenumbers() später in einer Foreach-Schleife genutzt wird.

    Hier die Dokumentation zum QueryBuilder:
    redmine.ilch2.de/projects/dev2/wiki/Database_QueryBuilder#Joins
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    MonkeyOnKeyboard Moderator
    Registriert seit
    10.02.2014
    Beiträge
    437
    Beitragswertungen
    20 Beitragspunkte
    ZitatZitat geschrieben von blackcoder
    Ich würde in Zeile 11 ein leeres Array zurückgeben, anstatt null - vor allem wenn das Ergebnis von getPhonenumbers() später in einer Foreach-Schleife genutzt wird.

    Hier die Dokumentation zum QueryBuilder:
    redmine.ilch2.de/projects/dev2/wiki/Database_QueryBuilder#Joins


    1. wie ein leeres array?
    2. hab mir die dokomentation querrybilder joins durchgelsen. aber an welcher stelle in meiner funktion und wie ganu definiere ich das join auf den namen über die clanid?


    EDIT::

    das ist der join dazu

    SELECT `u`.`user_id`, `u`.`clantag`, `u`.`phonenumber`, `g`.`name` AS `name` FROM `ilch_phonebook` AS `u` INNER JOIN `ilch_users` AS `g` ON `u`.`user_id` = `g`.`id`


    Zuletzt modifiziert von magicmarkus am 17.10.2018 - 15:24:43
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    blackcoder Entwickler
    Registriert seit
    22.05.2014
    Beiträge
    2.298
    Beitragswertungen
    360 Beitragspunkte
    1)
    return [];
    2)
    Wenn deine Spalte "user_id" aus der Tabelle "phonebook" der Spalte "id" aus der Tabelle "user" entspricht, holst du dir dann einfach die Spalte "name" aus der Tabelle "user".
    github.com/IlchCMS/Ilch-2.0/blob/v2.1.14/application/modules/user/config/config.php#L88
    github.com/IlchCMS/Ilch-2.0/blob/v2.1.14/application/modules/user/config/config.php#L89

    Dieses Beispiel aus dem Newsletter-Modul ist schon sehr nah an dem was du brauchst:
    github.com/IlchCMS/Ilch-2.0/blob/v2.1.14/application/modules/newsletter/mappers/Newsletter.php#L268
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    MonkeyOnKeyboard Moderator
    Registriert seit
    10.02.2014
    Beiträge
    437
    Beitragswertungen
    20 Beitragspunkte
    super, danke hat funktioniert
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    MonkeyOnKeyboard Moderator
    Registriert seit
    10.02.2014
    Beiträge
    437
    Beitragswertungen
    20 Beitragspunkte
    kann ich querybuilder auch mit if und else arbeiten?
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Allgemein

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten