Rumah > Artikel > rangka kerja php > Pembangunan Laravel: Bagaimana untuk membina model pangkalan data menggunakan Laravel Eloquent?
Pembangunan Laravel: Bagaimana untuk menggunakan Laravel Eloquent untuk membina model pangkalan data?
Laravel ialah rangka kerja PHP popular yang menyediakan alat operasi pangkalan data yang berkuasa dan mudah digunakan - Laravel Eloquent. Pada masa lalu, menggunakan PHP untuk melaksanakan operasi pangkalan data tidak dapat tidak memerlukan penulisan sejumlah besar pernyataan SQL yang panjang dan kod yang menyusahkan Walau bagaimanapun, menggunakan Laravel Eloquent boleh membina model pangkalan data dengan mudah dan mencapai pembangunan dan penyelenggaraan yang pantas. Artikel ini akan memperkenalkan cara menggunakan Laravel Eloquent untuk membina model pangkalan data.
1. Cipta jadual pangkalan data
Pertama, anda perlu mencipta jadual pangkalan data melalui pemindahan pangkalan data (Migrasi). Dalam Laravel, proses ini boleh dicapai menggunakan tukang alat baris arahan. Masukkan:
php artisan make:migration create_users_table
dalam baris arahan ini akan membuat fail pemindahan dalam direktori app/pangkalan data/penghijrahan nama fail ialah tarikh dan masa semasa serta nama pemindahan, seperti 2019_08_17_000000_create_users_table. php. Ubah suai fail migrasi dan tulis struktur pangkalan data yang sepadan.
Schema::create('users', function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->string('email')->unique(); $table->timestamp('email_verified_at')->nullable(); $table->string('password'); $table->rememberToken(); $table->timestamps(); });
Kod di atas mencipta jadual bernama pengguna, yang mengandungi 8 medan: id, nama, e-mel, email_verified_at, kata laluan, remember_token, created_at dan updated_at. Seterusnya, jalankan fail migrasi untuk mencipta jadual pangkalan data.
php artisan migrate
2. Cipta model
Mencipta model (Model) dalam aplikasi ialah langkah pertama dalam menggunakan Laravel Eloquent. Anda boleh mencipta model melalui alat artisan:
php artisan make:model User
Arahan di atas akan mencipta model bernama Pengguna dalam direktori aplikasi, yang sepadan dengan jadual pengguna dalam pangkalan data. Secara lalai, Laravel Eloquent menganggap bahawa nama jadual pangkalan data ialah bentuk jamak bagi nama model Jika anda perlu sepadan dengan nama jadual yang berbeza atau menggunakan sambungan pangkalan data yang berbeza, anda boleh mentakrifkan atribut $table dan $connection dalam model. .
Model ditakrifkan seperti berikut:
namespace App; use IlluminateDatabaseEloquentModel; class User extends Model { // }
3 Atribut model
Dalam model, Laravel Eloquent telah mentakrifkan beberapa atribut dan kaedah lalai, termasuk:
<.>protected $fillable = [ 'name', 'email', 'password', ];
protected $hidden = [ 'password', 'remember_token', ];
protected $casts = [ 'email_verified_at' => 'datetime', ];
$user = User::where('name', 'John')->first();
$user_id = 1; $user = User::find($user_id);
$user = User::where('name', 'John')->first();
$users = User::all();
User::create(['name' => 'Taylor', 'email' => 'taylor@example.com', 'password' => 'password']);
$user = User::find($user_id); $user->name = 'Updated Name'; $user->save();
$user = User::find($user_id); $user->delete();
class User extends Model { public function phone() { return $this->hasOne('AppPhone'); } }Dalam model Telefon, tentukan kaedah hasOne() yang bertentangan.
class Phone extends Model { public function user() { return $this->belongsTo('AppUser'); } }
class Thread extends Model { public function comments() { return $this->hasMany('AppComment'); } }Dalam model Komen, tentukan kaedah belongsTo() yang bertentangan.
class Comment extends Model { public function thread() { return $this->belongsTo('AppThread'); } }
class Post extends Model { public function tags() { return $this->belongsToMany('AppTag'); } }Dalam model Tag, takrifkan kaedah belongsToMany() yang bertentangan.
class Tag extends Model { public function posts() { return $this->belongsToMany('AppPost'); } }
多态关联允许模型通过多个中介模型与其他模型进行多对多关联。例如,在应用中可以使用comments模型对其他类型的模型进行评论。在Comment模型中,定义一个commentable()方法,表示该模型与所有支持评论的模型之间的多态关系。
class Comment extends Model { public function commentable() { return $this->morphTo(); } }
在支持评论的模型中,例如Post和Video模型中,定义morphMany()方法。
class Post extends Model { public function comments() { return $this->morphMany('AppComment', 'commentable'); } } class Video extends Model { public function comments() { return $this->morphMany('AppComment', 'commentable'); } }
以上是Laravel Eloquent提供的关联关系,可以让开发者在数据库模型中轻松处理复杂的关系结构。
七、总结
本文介绍了使用Laravel Eloquent构建数据库模型的基础知识,包括创建数据库表、创建模型、模型属性和方法,以及关联关系。Laravel Eloquent提供了一种简单和直观的方式来操作数据库,使得开发者能够快速构建应用程序,并为复杂的数据库结构提供了更干净、易于维护的解决方案。希望这篇文章对你的学习和开发有所帮助。
Atas ialah kandungan terperinci Pembangunan Laravel: Bagaimana untuk membina model pangkalan data menggunakan Laravel Eloquent?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!