+ Antworten
Seite 1 von 2 1 2 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Backend Komponente - kann Datensatz nicht löschen

  1. #1
    Neu an Board
    Registriert seit
    11.01.2014
    Beiträge
    5
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Lächeln Backend Komponente - kann Datensatz nicht löschen

    Hallo,
    ich versuche mich gerade an meiner ersten Joomla(2.5) Komponente und hangele mich dabei so gut es geht duch dieses Buch: "Joomla Extensions entwickeln"
    Nach anfänglichen Problemen mit dem MVC-Prinzip bin ich gut zurecht gekommen, aber habe jetzt einen Hänger:
    Ich habe einfach eine Tabelle für Kunden die im Backend angezeigt und verwaltet werden soll. Es funktioniert auch alles (anzeigen, ändern, neu), nur das löschen nicht. Beim Klick auf den (Jtoolbar)-Button löschen, wird einfach die Listenansicht neu geladen und der Datensatz ist noch da.
    Auf das Problem wird sogar extra hingewiesen. Man soll es mit folgender Funktion im Kontroller der Listenansicht beheben - bringt aber nichts:
    PHP-Code:
    public function getModel($name 'Customer'$prefix 'KursverwaltungModel'$config = array())
      {
        
    $config['ignore_request'] = true;
        
    $model parent::getModel($name$prefix$config);
        return 
    $model;
      } 
    Ist das ein bekanntes Problem? Kann mir jemand einen Tip zu meinem Fehler geben?

    Danke schon mal!

    PS: Meine Komponente heist com_kursverwaltung. Die Seiten für die Kunden sind customer.php und customers.php.
    Clemenz
    Geändert von Clemenz (09.02.2014 um 13:54 Uhr)

  2. #2
    Wohnt hier Avatar von rolip
    Registriert seit
    12.08.2010
    Ort
    localhost\htdocs\DA
    Beiträge
    2.615
    Bedankte sich
    462
    Erhielt 655 Danksagungen
    in 610 Beiträgen

    Standard

    Schreib doch einfach einmal die Autoren an - hier im Forum time4mambo oder firstlady, von denen kann dir bestimmt jemand helfen.

    Das Buch ist übrigens große Klasse - habe zumindestens schon vile Sachen daraus gelernt - auch dass die Schreibweisen von Namen sehr, sehr wichtig sein können.
    Gruß Rolf - eine Reaktion auf meinen Beitrag ist erwünscht !
    (siehe auch Freud (und Leid) mit Joomla bis 3.3.6)

  3. Erhielt Danksagungen von:


  4. #3
    Gehört zum Inventar Avatar von Helrunar
    Registriert seit
    05.03.2006
    Ort
    /home/helrunar/Webdev
    Beiträge
    8.599
    Bedankte sich
    957
    Erhielt 2.182 Danksagungen
    in 1.928 Beiträgen

    Standard

    Meines Wissens nach hatte sich mit Drucklegung des Buches einiges an der API geändert, sodass einiges so nicht mehr passt, wie beschrieben. Schau doch mal in einer Core-Komponente, wie es dort gelöst ist. Frei nach dem Motto: RTFC

  5. #4
    Neu an Board
    Registriert seit
    11.01.2014
    Beiträge
    5
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Danke für die schnellen Antworten, zumal meine Frage ziemlich ungenau ist.
    Ich hatte mit schon den korrigierten Quellcode zum Buch von github runtergeladen. - Wenn ich die fertige Beispielkomponente installiere funktioniert alles wie es soll, deshalb vermute ich den Fehler eher bei mir. Das kann daran liegen, dass ich das Beispiel nicht 1:1 abgetippt habe, sonder gleich auf meine Vorstellung angepast habe. Ich werde jetzt Beispielcode und meine Komponente noch einmal genauer vergleichen und dann meine Frage detailierter stellen.

    Die schnellen Antworten machen auf jeden Fall Hoffnung!

  6. #5
    Gehört zum Inventar
    Registriert seit
    17.09.2008
    Ort
    München
    Beiträge
    7.847
    Bedankte sich
    761
    Erhielt 2.545 Danksagungen
    in 2.210 Beiträgen

    Standard

    rolip hat schon recht - wenn du von den Plural/Singular-Namenskonventionen abweichst kann es zu Fehlern kommen. Das müsste man debuggen, aber ich denke, dass es nicht daran liegt. Denn wenn ein Model nicht gefunden wird, gibt es eine Fehlermeldung.
    Es kann aber auch einfach daran liegen, dass in deiner Datenbank etwas falsch ist. Anfangs achtet man ja nicht darauf, dass die Kategorien und assest-records alle zusammenpassen - wenn etwa eine category_id nicht stimmt, funktioniert das Löschen einfach nicht - ohne Fehlermeldung.

    EDIT: korrigiert, sorry rolip
    Geändert von firstlady (12.01.2014 um 13:25 Uhr) Grund: Ergänzung

  7. #6
    Neu an Board
    Registriert seit
    11.01.2014
    Beiträge
    5
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Danke für die Hilfen.
    @rolip: Dein Hinweis mit der Namenskonvention. Ich hatte mir da auch schon Fehler eingebaut und bin deshalb (abgesehen vom Komponentennamen) auf Englische Bezeichnungen übergegangen. Statt kunden/kunde auf customers/customer.

    @firstlady: Die Kategorien benutze ich gar nicht, auch wenn ich die Idee gut finde einfach die Joomla-Kategorie-Tabelle zu nutzen. …und beim debuggen taucht unter der Rubrik Datenbankabfragen gar keine DELETE-Anweisung auf. - Am besten hohle ich mal etwas weiter aus:


    Ich habe in Joomla 1.5 angefangen eigene Komponenten zu entwickeln. Einfach einen Ordner com_xxx angelegt und los geht's…
    Die Komponente lief auch 2 Jahre problemlos, bis ich die Winterpause unseres Verein für ein Upgrade auf Joomla 2.5 genutzt habe. Eigentlich keine große Sache mit JUpgrade - es waren nur minimale Anpassungen (und ein neues Template) nötig und die Seite läuft wieder. Einzige Einschränkung: Meine selbstgeschriebene Komponente...
    Da ich es diesmal richtig angehen will, habe ich mir das oben erwähnte Buch geholt und versuche das Buchbeispiel gleich auf meine Komponente anzuwenden.

    Was macht meine Komponente (in Kürze), oder was soll sie machen:
    Unser Verein hat einen Pool von Trainern für externe Gruppen. Wir bieten Schulen und sozialen Einrichtungen die Möglichkeit Kurs-/Terminanfragen zu stellen. Der Verein hat dann die Möglichkeit die Anfragen der "Kunden" mit einem Trainer zusammen zu bringen und den Termin zu bestätigen. Zusätzlich hatte die alte Komponente noch eine Schnittstelle zu JEvents, damit alles gleich im Kalender nachzuvollziehen ist.

    Ich bin noch ganz am Anfang, habe eine neue Komponente (com_kursverwaltung) erstellt und eine Tabelle für die Kunden. Es geht zuerst also nur um die Verwaltung der einen Tabelle übers Backend. Die Abweichungen zu dem Übungsbeispiel (mythings) sind das Weglassen der Kategorien und die Tatsache, das meine Komponente eine Einstiegsseite hat (und hier vermute ich die Fehlerquelle!). Beim Aufruf der Komponente landet man also nicht gleich bei der Listenansicht einer Tabelle, sonder - wie bei anderen größeren Komponenten (joomgallery oder jevents) - auf einer Übersichtsseite. Von dort aus kann man wählen was man tuen/berbeiten möchte.
    Es gibt also unter Controllers einen Kontroller für customers und customer. Unter Models ein Model für customers und customer und unter Views zusätzlich zu customers und customer noch kurverwaltung.
    Ich vermute, dass dadurch der Standardkontroller (controller.php) eine andere Aufgabe hat als im Buchbeispiel.

    Vermutlich habe ich mit den Kontrollern noch so meine Probleme, aber ich denke, ich brauche nicht weiter zu machen, solange ich das nicht komplett verstanden habe. Falls sich jemand die Mühe machen will in meine Komponente zu schauen würde ich mich freuen. Ich habe eine installierbare Version die ich gerne zur Verfügung stellen würde.
    Wäre über weitere Tip sehr dankbar.

    Gruß
    Clemenz

  8. #7
    Wohnt hier
    Registriert seit
    14.03.2011
    Beiträge
    2.579
    Bedankte sich
    54
    Erhielt 884 Danksagungen
    in 794 Beiträgen

    Standard

    OT:
    Ehre, wem Ehre gebührt.
    Illovo hat schon recht
    rolip hat schon recht ;-)

  9. #8
    Gehört zum Inventar
    Registriert seit
    17.09.2008
    Ort
    München
    Beiträge
    7.847
    Bedankte sich
    761
    Erhielt 2.545 Danksagungen
    in 2.210 Beiträgen

    Standard

    Sorry rolip und danke illovo Zu viel multitasking ..

    @Clemenz: Letzten 'Endes ist es egal, was du wie nennst, wenn du die Namen nur bekannt machst. Aber es ist bequemer, sich an den Standard zu halten.

    und beim debuggen taucht unter der Rubrik Datenbankabfragen gar keine DELETE-Anweisung auf
    Löschen heisst ja normalerweise nur: In den Papierkorb verschieben - was eine Statusänderung ist, kein delete.

    Du solltest Schritt für Schritt nachvollziehen, was in deiner Komponente passiert, beginnend mit dem Einstiegsskript. Anders kommst du nicht drauf und verstehst es auch nicht. Was macht JControllerAdmin? Welches Model holt er sich? Was macht JModelAdmin?

    EDIT: Und bist du sicher, dass du den Status korrekt abfragst? Also nur Sätze anzeigst, die nicht im "Papierkorb" sind?
    Geändert von firstlady (13.01.2014 um 07:11 Uhr)

  10. Erhielt Danksagungen von:


  11. #9
    Neu an Board
    Registriert seit
    11.01.2014
    Beiträge
    5
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Unglücklich

    Hallo,
    Leider bin ich immer noch nicht weiter und muss diesen Thread noch einmal bemühen: Habe eine ganze Zeit Pause mit dem Entwickeln gemacht, weil ich einfach nicht weiter komme. Jetzt habe ich beschlossen noch einmal ganz von vorne anzufangen, mit einer anderen Komponente als Vorlage.

    Es wurmt mich aber trotzdem, dass ich einfach nicht weiter gekommen bin. Natürlich hätte ich einen Button einbauen können, der dann genau das maht was ich will, aber ich möchte mich ja bei meinem Neuanfang ans Framework halten und die Boardmittel nutzen. Ich stelle meinen letzten Versuch hier einfach mal ein, vielleicht schaut ihn sich jemand an.
    Nur zur Info:
    Die Komponente lässt sich ganz normal installieren/deinstallieren. Wenn man nach der Installation die Komponente "Kursverwaltung" aufruft, gibt es drei Bereiche: "Kunden", "Trainer" und "Anfragen". Trainer und Anfragen existieren noch nicht, die braucht man also nicht aufzurufen. Bei den Kunden kommt man in eine Standard-Backend-Ansicht. Dort kann man Kunden hinzufügen, bearbeiten, aber einfach nicht löschen!
    Falls jemand die Fehlerquelle sieht, freue ich mich über einen Tip. - An sonsten, (wie gesagt) einfach noch einmal von vorne...

    com_kursverwaltung.zip

    Gruß
    Clemenz

  12. #10
    Gehört zum Inventar
    Registriert seit
    17.09.2008
    Ort
    München
    Beiträge
    7.847
    Bedankte sich
    761
    Erhielt 2.545 Danksagungen
    in 2.210 Beiträgen

    Standard

    Wie ich schon geschrieben habe:
    Löschen heisst ja normalerweise nur: In den Papierkorb verschieben - was eine Statusänderung ist, kein delete.
    Du hast in deiner Tabelle kein published definiert, daher kann der status auch nicht geändert werden, was der contoller beim delete von sich aus macht.
    In deinem Fall musst du selbst ein delete schreiben.

+ Antworten
Seite 1 von 2 1 2 LetzteLetzte

Stichworte

Berechtigungen

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