Saya ajaxly memanggil rute dan meneruskan data ke sana, Di controller saya, saya ingin mendapatkan $_POST['var']
,, $_POST['var2']
sepertinya karena menggunakan HttpFoundation di drupal 8, $_POST
dan $_GET
tidak ada dalam metode lama, Bagaimana saya bisa mengakses $_POST
parameter di Custom Controller?
24
Jawaban:
Dari catatan perubahan :
menjadi
Secara kebetulan, untuk
GET
vars, Anda akan menggunakan:sumber
\Drupal::request()->request->all()
Dalam controller, dapatkan permintaan dengan argumen type-hinted
Request $request
:Info lebih lanjut https://www.drupal.org/docs/8/api/routing-system/using-parameters-in-routes
sumber
Suntikkan
RequestStack
ke dalam pengontrol Anda.Permintaan saat ini berisi
query
atribut yang pada gilirannya berisi parameter GET.request
berisi parameter POST.sumber
Anda dapat memeriksa objek Permintaan seperti
itu akan mengembalikan GET atau POST atau apa pun. Jika Anda bekerja di dalam suatu objek, ingat untuk DI layanan Permintaan.
sumber
Jika Anda menggunakan
Content-Type: application/json
silakan gunakan:sumber
Tidak ada jawaban lain yang bekerja untuk saya, tetapi saya menemukan ini yang berhasil:
sumber
Berikut adalah contoh mengakses parameter URL dan meneruskannya ke templat TWIG, saya menganggap Anda telah membuat modul dan file yang diperlukan dan anggap "/ test? Fn = admin" adalah URL Anda
Sekarang buat controller Anda dan letakkan kode di bawah ini di dalamnya.
Sekarang di file TWIG Anda yang seharusnya "my-template.html.twig" Anda dapat mengakses parameter ini sebagai,
Dan itu selesai. Semoga ini membantu.
sumber