Dalam ThinkPHP, fungsi D ialah kaedah mudah yang boleh membantu pembangun membuat instantiate objek model dengan cepat. Dalam banyak kes, kita perlu menghantar parameter kepada kaedah model untuk mengendalikan logik perniagaan dengan lebih baik. Artikel ini akan memperkenalkan cara menghantar parameter dalam fungsi D.
1. Pengenalan kepada fungsi D
Fungsi D ialah kaedah yang biasa digunakan dalam ThinkPHP untuk membuat instantiate objek model adalah seperti berikut:
D('模型名','应用名');
Di mana, nama model ialah 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. Bagaimana untuk menghantar parameter kepada fungsi D
Dalam pembangunan sebenar, kita mungkin perlu menghantar parameter ke bahagian tertentu kaedah model untuk lulus parameter untuk mengendalikan logik perniagaan dengan lebih baik. Sebagai contoh, jika kami perlu menanyakan senarai pengguna yang berumur lebih daripada 20 tahun, kami boleh menggunakan kod berikut:
$User = D('User'); $list = $User->getUsersByAge(20);
Dalam kod di atas, getUsersByAge ialah kaedah tersuai dalam model Pengguna, digunakan untuk menyoal pengguna berdasarkan maklumat 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. Jika kita perlu membuat instantiate objek model dalam aplikasi lain, kita boleh melakukannya dengan menyatakan nama aplikasi. Sebagai contoh, jika kita ingin membuat instantiate objek model Pengguna dalam aplikasi Pentadbir, kita boleh menggunakan kod berikut:
$User = D('User','Admin');
Dalam kod di atas, 'Admin' mewakili nama aplikasi. Dengan cara ini, fungsi D akan mencari model Pengguna dalam aplikasi Pentadbir dan membuat instantiat objek. Walau bagaimanapun, kami belum menyelesaikan masalah menghantar parameter kepada kaedah getUsersByAge model Pengguna.
Untuk menangani masalah ini, ThinkPHP menyediakan cara penulisan yang lebih ringkas. Kita boleh menggunakan parameter ketiga fungsi D untuk lulus parameter. Contohnya, jika kita perlu menanyakan senarai pengguna yang berumur lebih daripada 20 tahun, kita boleh menggunakan kod berikut:
$User = D('User','',''); $list = $User->getUsersByAge(20);
Dalam kod di atas, rentetan kosong pertama mewakili nama model dan rentetan kosong kedua Mewakili nama aplikasi, dan rentetan kosong ketiga menunjukkan parameter lulus. Kita boleh menggunakan fungsi func_get_args() dalam kaedah getUsersByAge untuk mendapatkan parameter yang diluluskan.
3. Contoh
Mari kita praktikkan dalam projek dan buat modul Blog dalam projek ThinkPHP5.0. 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:
// 文件地址: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 menggunakan fungsi D untuk membuat instantiate objek model Blog dan menentukan nama aplikasi 'Common'. Kami juga memanggil kaedah tersuai getArticlesById dalam model Blog untuk menanyakan senarai artikel yang memenuhi syarat. Kod kaedah getArticlesById adalah seperti berikut:
// 文件地址:application\common\model\Blog.php namespace app\common\model; use think\Model; class Blog extends Model { protected $table = 'blog'; public function getArticlesById($id,$status) { $where = [ 'id' => ['gt',$id], 'status' => $status ]; return $this->where($where)->select(); } }
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. Kami menggunakan kaedah where untuk menetapkan syarat pertanyaan dalam kaedah, dan akhirnya mengembalikan hasil pertanyaan melalui kaedah pilih.
Melalui contoh di atas, kita dapat melihat bahawa fungsi D sangat mudah untuk digunakan dan boleh membantu kita membuat instantiate objek model dan lulus parameter untuk mengendalikan logik perniagaan dengan lebih baik.
Atas ialah kandungan terperinci Mari kita bincangkan tentang cara menghantar parameter dalam fungsi thinkphp D. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!