Frage zu JTable in Joomla 3.5

  • Vielleicht könnt ihr mir hier auf die Sprünge helfen? Ich hatte einmal gelesen, dass unter 3.5 folgendes nicht mehr funktionieren wird:


    Code
    $row = JTable::getInstance('Message','BestiaTable');
    $row->bind($data);
    $row->check();
    $store = $row->store(); 
    if($store) return $row->id;

    Ich hatte hier irgendwie im Hinterkopf, dass $row hier nicht mehr "id" zurück liefern würde. Es mag sein, dass ich das durcheinander bringe, daher würde ich mich freuen, wenn mich hier jemand aufklären könnte. Meine Ansatz, danach zu Googlen brachte leider keine brauchbaren Informationen ;)

    • Hilfreich

    hallo @ehrenwert, ich hab das mal in ein eigenes Thema verschoben weil das ja nichts mit dem Zeit Update für 3.5 zutun hat :)


    Zur Frage: In 3.5 darf per Definition nichts aus 3.x kaputt gehen. Das einfachste wird sein es auf einer 3.5 beta auszuprobieren. Wenn das in 3.4 klappt und in 3.5 beta nicht ist das ein Bug der bis 3.5 stable behoben werden muss :)

  • Hallo @zero24,


    bitte entschuldige, Du hast recht - ein eigener Thread ist hier sicher sinnvoll.


    Okay, dann habe ich das wohl durcheinander gebracht. Ich werde meine Komponente aber ohnehin unter 3.5 testen müssen, bevor ich das Update meiner 3.4'er Version durchführe.


    Bei Erscheinen der nächsten Beta schaue ich mal, ob sich das verträgt :-).

  • Moin moin,


    zur Beta habe ich es leider nicht mehr geschafft. Allerdings stelle ich fest: Tatsächlich funktioniert mein bisheriger Code nicht mehr.


    Aktuell werden neue Items folgendermaßen gespeichert:



    Bisher gab dann $row->id immer die ID des gerade gespeicherten Items zurück. Nun ist dies leider immer NULL.


    Wie kann ich das ändern?

  • Hallo und danke für Deine Antwort.


    Nein, $store ist true, nur ist $row->id NULL. Es gibt absolut keinen Fehler. In 3.4.48 hat der Spaß auch noch funktioniert.


    Woher nehme ich denn $database? Ich befinde mich in einem Helper, der ein Array mit Werten via "bind()" an eine JTable "bindet" und dann durch die store-Methode schickt.

  • Ich habe nun folgendes versucht:



    Hier ist nun $id gleich 0 (int). Aber auch das entspricht nicht der Tatsache, da der Datensatz unter der ID 757 gespeichert wurde und auch in der Datenbank zu sehen ist.