1. Pengenalan kepada fungsi D
Fungsi D ialah kaedah yang biasa digunakan dalam ThinkPHP untuk membuat instantiate objek model adalah seperti berikut:
D('模型名','应用名');
Antaranya, nama model adalah parameter yang diperlukan. Nama aplikasi ialah parameter pilihan Jika tidak dinyatakan, ia lalai kepada aplikasi semasa. Sebagai contoh, jika kita ingin membuat instantiate model Blog, kita boleh menggunakan kod berikut:
$Blog = D('Blog');
2 Cara menghantar parameter dalam fungsi D
Secara tertib untuk mengendalikan logik perniagaan dengan lebih baik, dalam Semasa pembangunan, kita mungkin perlu menghantar parameter kepada kaedah tertentu model. Kod berikut boleh digunakan untuk menanyakan senarai pengguna yang berumur lebih daripada 20 tahun
$User = D('User'); $list = $User->getUsersByAge(20);
getUsersByAge dalam kod di atas ialah kaedah model Pengguna tersuai yang digunakan untuk menanya maklumat pengguna mengikut umur. Jika kita perlu menggunakan fungsi D untuk menjadikan objek model Pengguna dan memanggil kaedah getUsersByAge, bagaimanakah kita harus lulus parameter?
Pertama, kita perlu memahami parameter kedua fungsi D: nama aplikasi. Secara lalai, nama aplikasi ialah nama aplikasi semasa. Untuk menjadikan objek model dalam aplikasi lain, hanya nyatakan nama aplikasi. Sebagai contoh, untuk membuat contoh objek model Pengguna dalam aplikasi Pentadbir, anda boleh menggunakan kod berikut:
rreeeDalam kod di atas, 'Admin' mewakili nama aplikasi. Dalam kes ini, aplikasi Pentadbir mencari model Pengguna untuk membuat instantiate objek, membenarkan fungsi D berfungsi dengan betul. Walau bagaimanapun, kami masih perlu mencari cara untuk menghantar parameter kepada kaedah getUsersByAge dalam model Pengguna.
Untuk menangani masalah ini, ThinkPHP menyediakan cara penulisan yang lebih ringkas. Kita boleh menggunakan parameter ketiga fungsi D untuk lulus parameter. Kod berikut boleh digunakan untuk menanyakan senarai pengguna berumur lebih 20 tahun
$User = D('User','Admin');
Dalam kod di atas, rentetan kosong pertama mewakili nama model, rentetan kosong kedua mewakili nama aplikasi dan rentetan kosong ketiga rentetan Digunakan untuk menghantar parameter. Dalam kaedah getUsersByAge, kita boleh menggunakan fungsi func_get_args() untuk mendapatkan parameter yang diluluskan.
3. Contoh
Kami cuba mencipta modul bernama Blog dalam projek ThinkPHP5.0 untuk operasi sebenar. Buat pengawal Artikel dalam modul Blog dan tambahkan kaedah indeks untuk menanyakan senarai artikel dengan ID lebih daripada 10 dan status 1. Kodnya adalah seperti berikut:
$User = D('User','',''); $list = $User->getUsersByAge(20);
Dalam kod di atas, kami menggunakan fungsi D untuk membuat instantiate objek model Blog dan menentukan nama aplikasi 'Common'. Kami menggunakan kaedah tersuai getArticlesById dalam model Blog untuk menanyakan senarai artikel yang memenuhi syarat. Kod kaedah getArticlesById adalah seperti berikut:
// 文件地址:application\blog\controller\Article.php namespace app\blog\controller; use think\Controller; class Article extends Controller { public function index() { $Blog = D('Blog','Common'); $list = $Blog->getArticlesById(10,1); dump($list); } }
Dalam kod di atas, kami mentakrifkan kaedah getArticlesById yang menanyakan senarai artikel dengan ID lebih daripada 10 dan status 1. Kaedah ini menerima dua parameter, $id dan $status. Dengan menetapkan syarat pertanyaan menggunakan kaedah where, kami akhirnya mengembalikan hasil pertanyaan melalui kaedah pilih.
Atas ialah kandungan terperinci Bagaimana untuk menghantar parameter dalam fungsi thinkphp D. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!