Rumah >rangka kerja php >ThinkPHP >Bagaimana untuk menggunakan kaedah m thinkphp
Dalam thinkphp, kaedah M() digunakan untuk membuat instantiat kelas model asas Selepas instantiation, hanya kaedah dalam kelas model asas (default ialah kelas Model) boleh dipanggil Sintaks "M(. '[Nama Model Asas:]Nama model','Awalan jadual data','Maklumat sambungan pangkalan data')".
Persekitaran pengendalian tutorial ini: sistem Windows 7, versi thinkphp v5.1, komputer Dell G3.
Kaedah M digunakan untuk membuat instantiate kelas model asas Perbezaan daripada kaedah D ialah:
Tidak perlu menyesuaikan kelas model, mengurangkan pemuatan IO, dan mempunyai prestasi yang lebih baik ;
hanya boleh memanggil kaedah dalam kelas model asas (lalai ialah kelas Model) selepas instantiasi
boleh dipanggil semasa instantiasi Tentukan awalan jadual, pangkalan data dan maklumat sambungan pangkalan data, tetapi dengan asasnya; model rangka kerja ThinkPHP versi baharu Fungsi kelas menjadi semakin berkuasa, dan kaedah M adalah lebih praktikal daripada kaedah D.
M('[基础模型名:]模型名','数据表前缀','数据库连接信息')1 model (Model) Kelas
Apabila tiada model ditakrifkan, kita boleh menggunakan kaedah berikut untuk membuat instantiate kelas model untuk operasi:
Kaedah ini adalah yang paling mudah dan paling mudah. cekap, kerana tidak perlu mentakrifkan sebarang kelas model, jadi panggilan merentas projek disokong. Kelemahannya juga ialah tiada kelas model tersuai, jadi logik perniagaan yang berkaitan tidak boleh ditulis dan hanya operasi CURD asas boleh diselesaikan.//实例化User模型 $User = M('User'); //执行其他的数据操作 $User->select();sebenarnya bersamaan dengan:
$User = M('User');bermaksud mengendalikan jadual think_user. Kaedah M juga mempunyai fungsi tunggal seperti kaedah D, dan ia tidak akan digunakan berulang kali jika dipanggil beberapa kali. Parameter nama model kaedah M akan ditukar secara automatik kepada huruf kecil apabila ditukar kepada jadual data, yang bermaksud bahawa spesifikasi penamaan jadual data ThinkPHP adalah dalam semua format huruf kecil.
$User = new Model('User');2. Menghasilkan kelas model awam yang lain
Cara pertama untuk membuat instantiat adalah kerana tiada definisi kelas model, jadi sukar untuk merangkum beberapa logik tambahan kaedah, tetapi Dalam kebanyakan kes, anda mungkin hanya perlu melanjutkan beberapa logik biasa, kemudian anda boleh mencuba kaedah berikut.
Penggunaan sebenarnya bersamaan dengan:$User = M('CommonModel:User');Oleh kerana kelas model sistem boleh dimuatkan secara automatik, kami tidak perlu mengimport perpustakaan kelas secara manual sebelum instantiasi. Kelas model CommonModel mesti mewarisi Model. Kami boleh menentukan beberapa kaedah logik biasa dalam kelas CommonModel, yang menghapuskan keperluan untuk menentukan kelas model tertentu untuk setiap jadual data Jika projek anda sudah mempunyai lebih daripada 100 jadual data, kebanyakannya adalah asas Untuk operasi CURD, hanya beberapa model yang mempunyai. beberapa logik perniagaan yang kompleks yang perlu dirangkumkan, jadi gabungan kaedah pertama dan kaedah kedua adalah pilihan yang baik.
$User = new CommonModel('User');3. Awalan jadual masuk, pangkalan data dan maklumat lain
Kaedah M mempunyai tiga parameter Parameter pertama ialah nama model (boleh termasuk kelas model asas dan pangkalan data ), parameter kedua digunakan untuk menetapkan awalan jadual data (biarkan kosong untuk mengambil awalan jadual konfigurasi projek semasa), dan parameter ketiga digunakan untuk menetapkan maklumat sambungan pangkalan data yang sedang digunakan (biarkan kosong untuk ambil sambungan pangkalan data maklumat konfigurasi projek semasa)), sebagai contoh:
bermaksud menghidupkan kelas model Model dan mengendalikan jadual think_user dalam pangkalan data db2. Jika parameter kedua dibiarkan kosong atau tidak diluluskan, ini bermakna menggunakan awalan jadual data dalam konfigurasi projek semasa Jika jadual data yang dikendalikan tidak mempunyai awalan jadual, anda boleh menggunakan:$User = M('db2.User','think_');Mewakili instantiate kelas model Model dan mengendalikan jadual pengguna dalam pangkalan data db1. Jika pangkalan data yang anda kendalikan memerlukan akaun pengguna yang berbeza, anda boleh menghantar maklumat sambungan pangkalan data, contohnya:
$User = M('db1.User',null);mewakili kelas model asas menggunakan Model, dan kemudian beroperasi pada jadual think_user, Gunakan akaun user_a untuk menyambung ke pangkalan data, dan pangkalan data operasi ialah thinkphp. Parameter maklumat sambungan ketiga boleh menggunakan konfigurasi DSN atau konfigurasi tatasusunan, malah boleh menyokong parameter konfigurasi.
$User = M('User','think_','mysql://user_a:1234@localhost:3306/thinkphp');
Sebagai contoh, jika anda mengkonfigurasi:
dalam fail konfigurasi projek, anda boleh menggunakan:'DB_CONFIG'=>'mysql://user_a:1234@localhost:3306/thinkphp';Kelas model asas dan pangkalan data boleh digunakan bersama-sama, sebagai contoh:
$User = M('User','think_','DB_CONFIG');Jika anda ingin membuat instantiate model hierarki, menggunakan kelas model awam, kita boleh menggunakan:
$User = M('CommonModel:db2.User','think_');untuk membuat instantiate UserLogic, walaupun ini tidak sangat masuk akal. Kerana anda boleh menggunakan
M('UserLogic:User');untuk mencapai fungsi yang sama. [Cadangan tutorial berkaitan:
D('User','Logic');rangka kerja thinkphp
]
Atas ialah kandungan terperinci Bagaimana untuk menggunakan kaedah m thinkphp. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!