Dalam thinkphp, kaedah D boleh mengembalikan objek model instantiated. Kaedah D digunakan untuk membuat instantiat kelas model tersuai Ia adalah enkapsulasi instantiasi kelas Model oleh rangka kerja ThinkPHP Sintaksnya ialah "D('[project://][group/]model','model name layer ')", Nilai pulangan ialah objek model instantiated.
Persekitaran pengendalian tutorial ini: sistem Windows 7, versi thinkphp v5.1, komputer Dell G3.
Kaedah D haruslah kaedah yang paling biasa digunakan Ia digunakan untuk membuat instantiat kelas model tersuai. Ia merupakan enkapsulasi instantiasi kelas Model oleh rangka kerja ThinkPHP, dan melaksanakan mod tunggal untuk menyokong projek silang. Dan panggilan berkumpulan, format panggilan adalah seperti berikut:
D('[项目://][分组/]模型','模型层名称')
Nilai pulangan kaedah D ialah objek model instantiated.
Kaedah D boleh mengesan kelas model secara automatik Jika kelas model tersuai wujud, kelas model tersuai akan dijadikan instantiated, kelas asas Model akan dibuat seketika masa, untuk instantiated Model yang diluluskan tidak akan instantiated berulang kali. Penggunaan kaedah
D yang paling biasa ialah untuk membuat model tersuai bagi projek semasa Contohnya:
// 实例化User模型 $User = D('User');
akan mengimport Lib/Model/UserModel.class.php di bawah. projek semasa, dan kemudian nyatakan kelas UserModel, jadi kod sebenar mungkin bersamaan dengan yang berikut:
import('@.Model.UserModel'); $User = new UserModel();
Kaedah D boleh menyokong model instantiating merentas kumpulan dan projek, contohnya:
//实例化Admin项目的User模型 D('Admin://User') //实例化Admin分组的User模型 D('Admin/User')
Bermula dari versi 3.1, disebabkan sokongan tambahan untuk model hierarki, kaedah D juga boleh membuat model lain sebagai contoh:
// 实例化UserService类 $User = D('User','Service'); // 实例化UserLogic类 $User = D('User','Logic');
D('User','Service');
akan mengimport Lib/Service/. UserService.class .php dan nyatakannya.
Pengetahuan lanjutan: Perbezaan utama antara D dan M ialah
Kaedah M tidak perlu mencipta fail kelas model, dan kaedah M tidak membaca kelas model, jadi secara lalai Pengesahan automatik adalah tidak sah, tetapi ia boleh dicapai melalui tugasan dinamik
dan kaedah D mesti mencipta kelas model.
Kita boleh menggunakan dua kaedah berikut untuk mencipta objek pemetaan jadual data
Yang pertama: $Test = D(‘Test')
Yang kedua: $Test = new Model(‘Test')
Walaupun kedua-duanya boleh melakukan operasi pilih, sisip, padam dan udpate pada data, terdapat perbezaan besar dalam
pengesahan data
Gunakan kaedah pertama untuk memberikan contoh model akan mempunyai fungsi semakan data Jika tajuk tidak diisi, ia akan menggesa "Sila masukkan tajuk" (ini adalah fungsi pengesahan automatik yang disediakan oleh tp, sudah tentu, syarat pengesahan perlu ditakrifkan dalam model yang sepadan. );
Jika anda menggunakan kaedah kedua, anda tidak akan mempunyai fungsi pengesahan data ini dan perlu mengesahkannya secara manual.
Ringkasannya adalah seperti berikut:
Fungsi D menghidupkan modul di bawah Lib/Model projek semasa anda.
Jika modul tidak wujud, kembalikan terus objek Model yang di instantiated (maksudnya sama dengan fungsi M()).
Dan M hanya mengembalikan objek yang membuat seketika Model. Parameter $name digunakan sebagai nama jadual pangkalan data untuk mengendalikan operasi pada pangkalan data.
Dalam istilah orang awam:
D adalah untuk membuat model berdasarkan fail Model.
M membuat instantiat objek Model secara dinamik dengan menggunakan kaedah Model secara langsung (kelas asas ThinkPHP), walaupun fail Model yang sepadan tidak wujud.
Secara ringkasnya:
Parameter instantiasi M ialah nama jadual pangkalan data.
D menyatakan fail model yang anda buat di bawah folder Model.
D bermaksud apabila anda tidak mentakrifkan model, sistem secara automatik mentakrifkan model untuk anda, supaya anda boleh melakukan input atau output data mudah.
Setiap fail Tindakan hendaklah sepadan dengan fail Model Jika anda mentakrifkan Model,
seperti: $Form = D(“User”)
boleh ditukar menjadi. $Form = new UserModel();
(Pengguna merujuk kepada nama fail model anda).
[Cadangan tutorial berkaitan: rangka kerja thinkphp]
Atas ialah kandungan terperinci kaedah thinkphp D mengembalikan apa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!