A Joomla-ban a jtable osztály
Ebben a cikkben szeretném megvizsgálni a JTable osztály használatát, amely végrehajtja az Active Record tervezési sablont. és népszerű módja az adatbázis elérésének OOP stílusban!
Minden ilyen osztály egy táblázatot képvisel az adatbázisunkban, ennek a táblázatnak minden egyes objektuma egy sor
Például egy ilyen kód használatával beszúrhatunk adatokat a #__content táblába:
A címkével rendelkező osztálynak rendelkeznie kell a Table_name nevű fájlnévvel, és örökölnie kell a JTable osztályból
Vagyis, ha létrehozunk egy content.php fájlt, akkor az osztálynak így kell kinéznie:
Figyelem! a Joomla 3+-ban nem kell használni a jimport direktívát ('joomla.database.table');
Következő, meg kell leírni az osztály konstruktora, amely jelzi a jel dolgozunk és egyedi mező auto_increment attribútum (általában id)
Ahhoz, hogy a TableContent osztály egy példányát bárhol megtalálhassuk a modellünkben, csak írj:
Milyen módszerekkel tudunk dolgozni az adatbázis objektummal?
Először is be tudjuk tölteni a $ table objektumba a stringet bármely olyan azonosítóval, amely a #__content táblában található:
A rekord létrehozásához ezt a kódot kell hívnunk:
A tárolási módszer igaznak bizonyul, ha a mentés a lemezcímke sikeres! és hamis, ha a mentés sikertelen!
Miután beillesztette az adatokat a táblába, a táblázat aktuális sorának azonosítója meg lesz írva objektumunk id mezőjébe. Ez kényelmes, ha valamilyen adatot be szeretne helyezni egy másik táblába, és meg kell adnia az első táblázat azonosítóját a második táblázat valamelyik mezőjében!
Továbbá, ha nem akarunk új mezõt létrehozni, hanem frissítjük a már létrehozott mezõt, akkor elegendõ megadni a sor azonosítási sorát, amelyre frissíteni szeretnénk:
Ha egy sorból törölni szeretné a táblát, ezt a kódot használhatja:
Ebben az osztályban is létezik egy módszer az elemek automatikus rendezésére a táblázatok mezői szerint:
Figyelem! A (z) $ _REQUEST használata nem kívánatos a projektekben, mert lehetőség nyílik olyan adatok bevitelére, amelyek végrehajthatják ezt a biztonsági rést, vagy a sebezhetőséget! A felhasználói bevitel biztosításához használja a JInput osztályt
Az osztályban a mi címkék felülbírálhatja, ha a bind módszer, amely kialakítja szempontjából adatok vonatkoznak, például ha nem adja meg a felvétel időpontját, akkor automatikusan rögzítésre jelzi, hogy a létrehozásának időpontja rekord: