ilch Forum » Ilch CMS 2.X » Module und Modifikationen » Eigenes Modul

Geschlossen
  1. #1
    User Pic
    alexteam Mitglied
    Registriert seit
    17.05.2007
    Beiträge
    26
    Beitragswertungen
    0 Beitragspunkte
    Guten Morgen,

    ich versuche gerade dank dem Video Tutorial von RTX2070 ein eigenes Modul zu schreiben.
    Habe mich auch an die Anleitung im Video gehalten.

    Jetzt mein Problem:

    In der Datenbank sind zwei Einträge vorhanden.
    In der Mappers Datei steht folgendes drin:

    namespace Modules\Besucher\Mappers;
    
    use Modules\Besucher\Modules\Besucher as BesucherModel;
    
    class Besucher extends \Ilch\Mapper
    {
    
    	public function getBesucher($where = [])
        {
            $besArray = $this->db()->select('*')
                ->from('besucher')
                ->where($where)
                ->execute()
                ->fetchRows();
    
            if (empty($besArray)) {
                return [];
            }
    
            $Array = [];
    
            foreach ($Array as $Row) {
    			
                $Model = new besucherModel();			
                $Model->setId		($Row['Id']);
    			$Model->setVorname	($Row['Vorname']);
    			$Model->setNachname	($Row['Nachname']);
    			$Model->setStrasse	($Row['Strasse']);
    
                $Array[] = $BesucherModel;
            }
    
            return $Array;
        }
    
    }


    Es wird im Frontend folgendes angezeigt:

    Array
    (
    )


    Wenn ich folgendes ändere also das foreach rausnehme

    namespace Modules\Besucher\Mappers;
    
    use Modules\Besucher\Modules\Besucher as BesucherModel;
    
    class Besucher extends \Ilch\Mapper
    {
    
    	public function getBesucher($where = [])
        {
            $besArray = $this->db()->select('*')
                ->from('besucher')
                ->where($where)
                ->execute()
                ->fetchRows();
    
            if (empty($besArray)) {
                return [];
            }
    
            $besArray[] = $Array;
    /*
            foreach ($Array as $Row) {
    			
                $Model = new besucherModel();			
                $Model->setId		($Row['Id']);
    			$Model->setVorname	($Row['Vorname']);
    			$Model->setNachname	($Row['Nachname']);
    			$Model->setStrasse	($Row['Strasse']);
    
                $Array[] = $BesucherModel;
            }
    */
            return $besArray;
        }
    
    }


    funktioniert die Abfrage und es wird folgendes angezeigt:

    Array
    (
        [0] => Array
            (
                [Id] => 1
                [Vorname] => Alex
                [Nachname] => Zschau
                [Strasse] => Paul
            )
    
        [1] => Array
            (
                [Id] => 2
                [Vorname] => Diane
                [Nachname] => Zschau
                [Strasse] => Paul
            )
    
        [2] => 
    )


    Modules PHP

    namespace Modules\Besucher\Models;
    
    use Modules\Besucher\Modules\Besucher as BesucherModel;
    
    class Besucher extends \Ilch\Model
    {
    	//Klassen der Besucher
    	
    	protected $id;
    	protected $vorname;
    	protected $nachname;
    	protected $strasse;
    
    	
    	//Öffentliche Funktion
    	
    	//---------ID
    	public function getId(){
    		
    		return $this->id;
    		
    	}
    	
    	public function setId($param){
    		
    		$this->id = (int)$parem;
    	}
    	
    	//---------Datum
    	/*
    	public function getDatum(){
    		
    	return $this->Datum;
    		
    	}
    	
    	public function setDatum($parem){
    		
    		$this->Datum = (string)$parem;
    	}
    	//---------Zeit
    	public function getZeit(){
    		
    	return $this->Zeit;
    		
    	}
    	
    	public function setZeit($parem){
    		
    		$this->Zeit = (string)$parem;
    	}*/
    	//----------Vorname
    	public function getVorname(){
    		
    	return $this->vorname;
    		
    	}
    	
    	public function setVorname($parem){
    		
    		$this->vorname = (string)$parem;
    	}
    	//----------Nachname
    	public function getNachname(){
    		
    	return $this->nachname;
    		
    	}
    	
    	public function setNachname($parem){
    		
    		$this->nachname = (string)$parem;
    	}
    	//---------Strasse
    	public function getStasse(){
    		
    	return $this->strasse;
    		
    	}
    	
    	public function setStrasse($parem){
    		
    		$this->strasse = (string)$parem;
    		
    	//----------PLZ
    }


    Controllers Index sieht so aus

    
    namespace Modules\Besucher\Controllers;
    
    use Modules\Besucher\Mappers\Besucher as BesucherMapper;
    
    class Index extends \Ilch\Controller\Frontend
    {
    
        public function indexAction()
        {
    		$Mapper = new BesucherMapper();
    		
    		$besucher = $Mapper->getBesucher();
    
    		$this->getView()->set('Besucher', $besucher);
    		
        }
    }


    View Indes

    <?php
    
    $Daten = $this->get('Besucher');
    
    echo "<pre>";
    print_r($Daten);
    echo "</pre>";
    ?>


    Weiss nicht wo der Fehler liegt. könnt Ihr mir da bitte helfen.


    verwendete ilch Version: 2.1.x

    betroffene Homepage: localhost
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Bei der foreach gehst du über das gerade erstellte $Array, das ja leer ist.

    Du müsstest aber über das $besArray "foreachen", damit du etwas mit Daten machst.

    An der Stelle noch der Hinweis, dass du auf Groß- und Kleinschreibung achten solltest.
    Wenn du also oben 'as BesucherModel' schreibst, solltest du dann auch unten new BesucherModel verwenden.

    Und bei
    use Modules\Besucher\Modules\Besucher as BesucherModel;
    sollte das 2te Modules eigentlich Models sein.

    Falls du noch keinen Editor verwendest, der für das Programmieren geeignet ist, solltest du dir einen suchen.
    Zur Zeit angesagt ist da zum Beispiel Visual Studio Code.


    Zuletzt modifiziert von Mairu am 23.10.2020 - 09:12:32
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    alexteam Mitglied
    Registriert seit
    17.05.2007
    Beiträge
    26
    Beitragswertungen
    0 Beitragspunkte
    Danke erstmal für die Antwort ich änder es gleich mal und versuche mich weiter.
    Habe den Notpad++ Editor
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    alexteam Mitglied
    Registriert seit
    17.05.2007
    Beiträge
    26
    Beitragswertungen
    0 Beitragspunkte
    So alle Fehler gefunden und es funtioniert erstmal. Danke für die Hilfe.

    Ist der Notepad++ erst mal ausreichend oder Visual Studio Code besser?
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    RTX2070 Hall Of Fame
    Registriert seit
    14.06.2019
    Beiträge
    274
    Beitragswertungen
    46 Beitragspunkte
    Zum üben ist der Notepad++ OK.
    In den späteren Videos habe ich dann auf den Atom Editor gewechselt...
    atom.io/

    Für noch mehr Komfort bietet es sich allerdings an auf eine vernünftige IDE zu setzen. Bspw. PhpStorm
    externer Link

    Mfg

    RTX

    P.s. Deine kleinen Fehler sind so aber nicht im Video zunge


    Zuletzt modifiziert von RTX2070 am 23.10.2020 - 12:33:03

    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    alexteam Mitglied
    Registriert seit
    17.05.2007
    Beiträge
    26
    Beitragswertungen
    0 Beitragspunkte
    Danke dir. Nein im Video sind die nicht. Aber wenn man ständig schaut und vergleicht dann übersieht man doch einiges.

    Videos ab Teil 15 sind auf Github glaub falsch verlinkt.

    Großes Lob an dich die Videos sind echt gut und sehr hilfreich.


    Zuletzt modifiziert von alexteam am 23.10.2020 - 13:17:33
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    RTX2070 Hall Of Fame
    Registriert seit
    14.06.2019
    Beiträge
    274
    Beitragswertungen
    46 Beitragspunkte
    Danke dir, leider ist bei Teil 20 erstmal Pause. Mir fehlt leider die Zeit.

    Der gesamte Quellcode steht aber auf meiner Website zum Download bereit.

    Schönes Wochenende

    RTX

    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Module und Modifikationen

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten