Di Joomla! 2.5.x Saya cukup menjalankan JRequest::get('post');
tetapi melihat seperti JRequest
sudah usang di Joomla! 3.x saya harus menggunakan JInput
.
Pada saat ini, ini adalah kode yang saya gunakan untuk mendapatkan keseluruhan $_POST
:
$app = JFactory::getApplication();
$postData = $app->input->getArray(array_flip(array_keys($_POST)));
Tapi ini sepertinya agak rumit dan saya mengalami masalah jika digunakan bersama dengan $app->input->set();
saya akan berpikir akan ada cara yang lebih baik?
Saat mencari ini sebelum saya menemukan orang-orang mengatakan Anda bisa lari
$app = JFactory::getApplication();
$postData = $app->input->post;
Tetapi ketika saya mencoba ini saya hanya mendapatkan contoh JInput
objek.
Jawaban:
Apakah cara untuk pergi, Anda akan mendapatkan objek JInput dan dapat menggunakannya seperti JRequest
Filter dapat berupa 'int', 'cmd' atau banyak lainnya - daftar lengkap dapat ditemukan dalam fungsi ini: https://github.com/joomla/joomla-cms/blob/a3df15f1ddad6d9051d53f939b6afd2f5fca60b7/libraries/joomla/filter/input .php # L138
Jika Anda hanya ingin array, maka Anda bisa melakukannya
Tetapi Anda harus menghindari gaya mengakses data pengguna ini tanpa pemfilteran.
sumber
$_POST
tanpa benar-benar mengetahui nama-nama vars yang perlu saya dapatkan, itu sebabnya menggunakanJInput
objek seperti itu tidak berguna dalam banyak kasus. Masih jawaban yang bagus.$app->input->post->getArray();
ini hanya berlaku di Joomla 3.2.0 dan yang lebih baru. Dan dalam versi sebelumnya (termasuk 2.5) Anda harus menggunakan$app->input->getArray($_POST)
Tampaknya cara lain untuk mencapainya adalah dengan mengirimkan array kosong:
Ini akan mengambil semua yang ada di
JInput
data var seolah-olah Anda sedang mengakses$_REQUEST
super.Ini tidak berfungsi di Joomla! Versi 2.5.x dari
JInput
sekalipun.sumber
Semoga ini berhasil,
JRequest :: get ('post');
Ini akan membantu Anda untuk mengambil data dari $ _POST setara dalam PHP.
sumber