it-swarm-id.com

Bagaimana saya bisa menggunakan model komponen lain dalam komponen saya?

Saya sedang membangun sebuah komponen dan perlu mengakses tabel #__content. Komponen com_content melakukan semua yang komponen saya perlu lakukan dalam tabel itu. Bagaimana cara mengimpor model com_content ke dalam pengontrol di komponen saya?

Apakah praktik yang baik untuk menggunakan tabel yang ada sebagai gantinya untuk membuat tabel saya sendiri? Komponen saya akan menampilkan galeri foto dengan komentar dan saya ingin menggunakan tabel #__content untuk menyimpan komentar. Haruskah saya membuat tabel baru untuk komentar?

8
csbenjamin

Anda dapat mengimpor model com_content Ke dalam pengontrol menggunakan metode addIncludePath():

JModelLegacy::addIncludePath(JPATH_SITE . '/components/com_content/models', 'ContentModel');

addIncludePath() method menambahkan direktori di mana JModelLegacy harus mencari model. Anda dapat meneruskan string atau array direktori sebagai parameter pertama. Sebagai parameter kedua, Anda dapat menentukan awalan kelas untuk model (opsional).

Kemudian gunakan getInstance() metode:

$model = JModelLegacy::getInstance('Articles', 'ContentModel', array('ignore_request' => true));

Parameter pertama adalah tipe model untuk instantiate, yang kedua adalah awalan untuk nama kelas model (opsional) dan parameter ketiga adalah array konfigurasi untuk model (opsional).

Tapi saya lebih suka tidak menggunakan tabel komponen inti yang ada untuk komponen khusus.

16
Dmitry Rekun