În acest articol vreau să ia în considerare lucrul cu clasa JTable care implementează șablonul de design Active Record. și este o modalitate populară de a accesa baza de date în stil OOP!
Fiecare clasă reprezintă o tabelă în baza noastră de date, fiecare obiect al acelei clase este un rând din acest tabel
De exemplu, utilizând un astfel de cod, putem introduce date în tabela #__content:
O clasă cu o etichetă trebuie să aibă numele Table_File_name și să fie moștenită din clasa JTable
Asta este, dacă vom crea un fișier content.php, atunci clasa ar trebui să arate astfel:
Atenție vă rog! în Joomla 3+ nu aveți nevoie să utilizați directiva jimport ("joomla.database.table");
În continuare, avem nevoie pentru a descrie constructorul clasei care va fi indicat cu un semn în care lucrăm și câmp unic, cu atributul AUTO_INCREMENT (de obicei, id)
Pentru a obține o instanță a clasei TableContent oriunde în modelul nostru, scrieți doar:
Ce metode putem folosi pentru a lucra cu obiectul bazei de date?
În primul rând, putem încărca în tabela $ object un șir cu orice identificator care este în tabelul #__content:
Pentru a crea o înregistrare, trebuie să sunăm acest cod:
Metoda de stocare revine la adevărat dacă salvarea etichetei de înregistrare are succes! și false dacă salvarea nu a reușit!
După introducerea datelor în tabel, id-ul rândului curent din tabel va fi scris în câmpul id al obiectului nostru. Acest lucru este convenabil dacă doriți să introduceți unele date într-o altă tabelă și trebuie să specificați ID-ul primei tabele într-un câmp al celui de-al doilea tabel!
În plus, dacă nu doriți să creați un nou domeniu, și actualizarea câmpului deja stabilit este suficient pentru a specifica identificatorul rând din tabel în care să se actualizeze:
Pentru a șterge un rând din tabel, puteți folosi acest cod:
De asemenea, în această clasă există o metodă pentru aranjarea automată a elementelor pe câmpurile din tabelul nostru:
Atenție vă rog! Utilizarea programului $ _REQUEST nu este de dorit în proiectele dvs. din cauza oportunității de a introduce date care pot implementa această sau acea vulnerabilitate! Pentru a asigura intrarea utilizatorului, utilizați clasa JInput
În clasa a etichetelor noastre, puteți suprascrie metoda de legare care ar stabili termenii săi de date se referă, de exemplu, dacă nu precizează data înregistrării, acesta poate fi înregistrate automat pentru a indica faptul că data creării înregistrării: