Rumah >rangka kerja php >ThinkPHP >Mari kita bincangkan tentang cara menggunakan model dalam ThinkPHP 5.0
ThinkPHP 5.0 ialah salah satu rangka kerja pembangunan PHP yang paling banyak digunakan di China Ia bukan sahaja telah membuat banyak pengoptimuman dan penambahbaikan dalam kod teras, tetapi juga menambah banyak fungsi dan ciri baharu, antaranya model itu juga telah dibuat. sangat bertambah baik. Artikel ini akan memperkenalkan secara terperinci cara menggunakan model dalam ThinkPHP 5.0.
1. Apakah itu model
Model hanyalah kelas operasi data, digunakan untuk mengendalikan pangkalan data. Dalam ThinkPHP, model merangkum jadual data, membolehkan operasi yang mudah dan pantas pada jadual data. Apabila mencipta model, anda hanya perlu mewarisi ThinkModel dan bukannya menulis sejumlah besar pertanyaan dan pernyataan SQL.
2. Cipta model ringkas
Dalam ThinkPHP 5.0, mencipta model adalah sangat mudah, Anda sahaja perlu mencipta direktori model baharu dalam direktori aplikasi, dan kemudian buat fail baharu bernama User.php dalam direktori model Kodnya adalah seperti berikut:
<?php namespace app\model; use think\Model; class User extends Model { }
$user = new User(); $user->name = 'Tom'; $user->age = 20; $user->save();Di atas ialah cara paling biasa untuk memasukkan data, membuat instantiate objek Pengguna , dan kemudian Berikan nilai kepada objek melalui atribut, dan akhirnya panggil kaedah save() untuk menyimpan data ke pangkalan data. (2) Padamkan data
User::destroy(1);Yang 1 di sini ialah ID data yang akan dipadamkan. Jika anda ingin memadamkan berbilang keping data, anda boleh menghantar tatasusunan. Anda juga boleh menggunakan kaedah where untuk pemadaman bersyarat. (3) Data pertanyaan
// 查询所有数据 $users = User::all(); // 根据条件查询单条数据 $user = User::where('name', 'Tom')->find(); // 根据条件查询多条数据 $users = User::where('age', '>', 18)->select();(4) Kemas kini data
$user = User::get(1); $user->name = 'Jack'; $user->save();Iaitu, tanya dahulu data yang hendak diubah suai, dan kemudian gunakan save( ) selepas mengubah suai kaedah data disimpan ke pangkalan data. 3. Model operasi perkaitan Dalam pembangunan sebenar, selalunya perlu melakukan pertanyaan bersama yang kompleks dan operasi perkaitan pada berbilang jadual data. Model ThinkPHP 5.0 menyediakan operasi persatuan yang kaya yang boleh menyelesaikan masalah perkaitan antara jadual dengan cepat.
class User extends Model { public function profile() { return $this->hasOne('Profile'); } } class Profile extends Model { public function user() { return $this->belongsTo('User'); } } $user = User::get(1); $profile = $user->profile;Dalam kod di atas, model Pengguna dikaitkan dengan model Profil melalui kaedah hasOne() dan kemudian atribut $user->profile dipanggil untuk mendapatkan yang berkaitan data. (2) Pertanyaan berkaitan
$user = User::with('profile')->select(); $profile = $user->profile;Dalam kod di atas, pertanyaan berkaitan dilakukan secara langsung melalui kaedah with(), dan kemudian atribut $user->profile dipanggil untuk mendapatkan data yang berkaitan. (3) Pertanyaan bersepadu
$user = User::field('name') ->join('profile', 'profile.user_id=user.id') ->select(); $profile = $user->profile;Dalam kod di atas, jadual Pengguna dan jadual Profil disambungkan melalui kaedah join() dan kemudian medan jadual Profil boleh diperolehi dalam ungkapan medan .
class User extends Model { public function books() { return $this->hasMany('Book'); } } class Book extends Model { public function user() { return $this->belongsTo('User'); } } $user = User::get(1); $books = $user->books;Dalam kod di atas, model Pengguna dikaitkan dengan model Buku melalui kaedah hasMany(), dan kemudian atribut $user->books dipanggil untuk mendapatkan data yang berkaitan. (2) Pertanyaan berkaitan
$user = User::with('books')->select(); $books = $user->books;Dalam kod di atas, pertanyaan berkaitan dilakukan secara langsung melalui kaedah with(), dan kemudian atribut $user->books dipanggil untuk mendapatkan data yang berkaitan. (3) Pertanyaan bersepadu
$user = User::field('name') ->join('book', 'book.user_id=user.id') ->select(); $books = $user->books;Dalam kod di atas, jadual Pengguna dan jadual Buku disambungkan melalui kaedah join() dan kemudian medan jadual Buku boleh diperolehi dalam ungkapan medan .
class User extends Model { public function roles() { return $this->belongsToMany('Role'); } } class Role extends Model { public function users() { return $this->belongsToMany('User'); } } $user = User::get(1); $roles = $user->roles;Dalam kod di atas, model Pengguna dikaitkan dengan Role model melalui kaedah belongsToMany(), dan kemudian atribut $user->roles dipanggil untuk mendapatkan data yang berkaitan. (2) Soal jadual perantaraan secara berasingan
$user = User::get(1); $roles = $user->roles() ->where('status', '1') ->select();Dalam kod di atas, panggil kaedah $user->roles() untuk mendapatkan jadual perantaraan, dan kemudian gunakan where () kaedah untuk melaksanakan pertanyaan bersyarat. (3) Pertanyaan penyepaduan jadual perantaraan
$user = User::field('name,role.name as rolename') ->join('user_role','user_role.user_id=user.id') ->join('role', 'user_role.role_id=role.id') ->select(); $roles = $user->roles;Dalam kod di atas, jadual Pengguna, jadual UserRole dan jadual Peranan disambungkan melalui kaedah join() dan kemudian ia boleh ditambah dalam ungkapan medan Dapatkan medan jadual Peranan. 4. Acara model Acara model ThinkPHP 5.0 menyediakan banyak mata kait yang berguna dalam kitaran hayat model, membolehkan kami mengendalikan dan memproses data pada masa dan peringkat yang berbeza dengan mudah melaksanakan fungsi seperti pengesahan data, pengisian automatik dan pengemaskinian data. Peristiwa yang biasa digunakan termasuk yang berikut: (1) Peristiwa prapertanyaan
class User extends Model { protected static function onBeforeFind($query) { // before find event } }Dalam kod di atas, acara prapertanyaan ditambah melalui kaedah onBeforeFind(). (2) Peristiwa pra-masukkan
class User extends Model { protected static function onBeforeInsert($data) { // before insert event } }Dalam kod di atas, tambahkan acara pra-masukkan melalui kaedah onBeforeInsert(). (3) Acara prakemas kini
class User extends Model { protected static function onBeforeUpdate($data) { // before update event } }Dalam kod di atas, acara prakemas kini ditambah melalui kaedah onBeforeUpdate(). (4) Pra-padam acara
class User extends Model { protected static function onBeforeDelete($data) { // before delete event } }Dalam kod di atas, tambahkan acara pra-padam melalui kaedah onBeforeDelete(). 5
Melalui pengenalan artikel ini, kita dapat melihat bahawa model dalam ThinkPHP 5.0 adalah sangat mudah untuk digunakan dan menyokong operasi CRUD dan pertanyaan berkaitan yang biasa digunakan. Pada masa yang sama, acara model boleh melaksanakan fungsi dengan mudah seperti pengesahan data, pengisian automatik dan pengemaskinian data. Melalui penggunaan model pembelajaran yang mendalam, kecekapan pembangunan dapat dipertingkatkan dan proses pembangunan projek dapat dipercepatkan.
Atas ialah kandungan terperinci Mari kita bincangkan tentang cara menggunakan model dalam ThinkPHP 5.0. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!