Menurut db_insert
halaman manual fungsi ini sudah tidak digunakan lagi dan lebih baik menggunakan koneksi database Drupal 8 untuk melakukan insert.
Usang
pada Drupal 8.0.x, akan dihapus dalam Drupal 9.0.0. Alih-alih, dapatkan koneksi basis data yang disuntikkan ke layanan Anda dari wadah dan masukkan panggilan () di dalamnya. Misalnya, $ injected_database-> insert ($ table, $ options);
Sekarang bagaimana saya bisa mendapatkan koneksi basis data dan insert()
metode panggilan ?
\Drupal::database()->insert(...);
?class PetmdController extends ControllerBase
Jawaban:
Untuk menyuntikkan layanan database, tambahkan / ubah metode berikut di kelas controller Anda:
sumber
Untuk menambahkan jawaban Berdir di sini adalah bagaimana Anda dapat menyuntikkan layanan database Anda di controller Anda
Anda dapat mempelajari
core/lib/Drupal/Core/Database/Query
kelas untuk informasi lebih lanjutsumber
Pertama, seperti kutipan Anda katakan, itu sudah usang untuk Drupal 9 . Yang berarti akan tetap ada selama bertahun-tahun dan tidak akan pernah dihapus dari Drupal 8.
Tapi ya, itu ide yang bagus untuk menghindari fungsi yang sudah usang. Seperti fungsi usang lainnya, Anda selalu dapat dengan mudah melihat implementasinya untuk melihat bagaimana cara baru melakukannya. Meskipun alih-alih memanggil \ Drupal, Anda ingin menyuntikkan database atau layanan lain apa pun yang Anda perlukan saat itu mungkin (ketika Anda berada di layanan, pengontrol, formulir, plugin, ...)
sumber
Pilihan 1:
pilihan 2
sumber