Rumah > rangka kerja php > Laravel > Pembangunan Laravel: Bagaimana untuk membina model pangkalan data menggunakan Laravel Eloquent?

Pembangunan Laravel: Bagaimana untuk membina model pangkalan data menggunakan Laravel Eloquent?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2023-06-14 08:21:39
asal
1550 orang telah melayarinya

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
Salin selepas log masuk

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();
});
Salin selepas log masuk

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
Salin selepas log masuk

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
Salin selepas log masuk

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
{
    //
}
Salin selepas log masuk

3 Atribut model

Dalam model, Laravel Eloquent telah mentakrifkan beberapa atribut dan kaedah lalai, termasuk:

<. 🎜>
    Atribut $fillable: Tentukan atribut yang boleh ditetapkan dalam kelompok untuk mengelakkan serangan suntikan. Boleh diisi daripada permintaan cipta/kemas kini menggunakan kaedah create() dan kemas kini().
  1. protected $fillable = [
        'name', 'email', 'password',
    ];
    Salin selepas log masuk
    $hidden attribute: Mentakrifkan atribut yang harus disembunyikan dalam tatasusunan. Apabila bersiri, sifat ini akan disembunyikan.
  1. protected $hidden = [
        'password', 'remember_token',
    ];
    Salin selepas log masuk
    Atribut $casts: Mentakrifkan sifat yang harus ditukar kepada jenis asli (integer, Boolean, titik terapung, dll.) atau objek tersuai.
  1. protected $casts = [
        'email_verified_at' => 'datetime',
    ];
    Salin selepas log masuk
4. Kaedah model

Laravel Eloquent menyediakan beberapa kaedah untuk melaksanakan operasi data dalam model. Berikut ialah beberapa kaedah model yang paling biasa:

    where(): digunakan untuk menambah keadaan WHERE.
  1. $user = User::where('name', 'John')->first();
    Salin selepas log masuk
    Salin selepas log masuk
    find(): digunakan untuk mencari rekod mengikut ID kunci utama model.
  1. $user_id = 1;
    $user = User::find($user_id);
    Salin selepas log masuk
    first(): Mengembalikan rekod pertama ditemui.
  1. $user = User::where('name', 'John')->first();
    Salin selepas log masuk
    Salin selepas log masuk
    get(): Mengembalikan semua rekod yang ditemui.
  1. $users = User::all();
    Salin selepas log masuk
    create(): digunakan untuk mencipta rekod data baharu.
  1. User::create(['name' => 'Taylor', 'email' => 'taylor@example.com', 'password' => 'password']);
    Salin selepas log masuk
    kemas kini(): digunakan untuk mengemas kini rekod.
  1. $user = User::find($user_id);
    $user->name = 'Updated Name';
    $user->save();
    Salin selepas log masuk
    delete(): digunakan untuk memadam rekod.
  1. $user = User::find($user_id);
    $user->delete();
    Salin selepas log masuk
Di atas ialah beberapa kaedah asas model Laravel Eloquent, yang boleh melaksanakan operasi tambah, padam, ubah suai dan pertanyaan pada pangkalan data dengan cepat.

5. Persatuan

Laravel Eloquent juga menyediakan cara yang mudah untuk mentakrifkan pelbagai persatuan: Satu kepada Satu, Satu kepada Banyak , Banyak kepada Banyak dan Hubungan Polimorfik. Berikut ialah beberapa contoh:

    Satu kepada Satu
Dalam perkaitan satu dengan satu, setiap tika model hanya berkaitan dengan satu Contoh model lain dikaitkan. Contohnya, setiap baris dalam jadual pengguna mungkin dikaitkan dengan baris dalam jadual telefon, yang menyimpan nombor telefon pengguna. Dalam model Pengguna, tentukan kaedah phone() untuk mewakili perhubungan satu dengan satu antara model dan model telefon.

class User extends Model
{
    public function phone()
    {
        return $this->hasOne('AppPhone');
    }
}
Salin selepas log masuk

Dalam model Telefon, tentukan kaedah hasOne() yang bertentangan.

class Phone extends Model
{
    public function user()
    {
        return $this->belongsTo('AppUser');
    }
}
Salin selepas log masuk

    Satu kepada Banyak
Dalam perhubungan satu-dengan-banyak, satu contoh model dikaitkan dengan contoh model lain, dan satu contoh lain boleh dikaitkan dengan beberapa contoh model. Contohnya, dalam tapak forum, setiap templat mungkin dikaitkan dengan banyak ulasan. Dalam model Thread, tentukan kaedah komen() untuk mewakili hubungan satu-ke-banyak antara model dan model Komen.

class Thread extends Model
{
    public function comments()
    {
        return $this->hasMany('AppComment');
    }
}
Salin selepas log masuk

Dalam model Komen, tentukan kaedah belongsTo() yang bertentangan.

class Comment extends Model
{
    public function thread()
    {
        return $this->belongsTo('AppThread');
    }
}
Salin selepas log masuk

    Many to Many
Dalam perhubungan banyak-ke-banyak, tika model dikaitkan dengan banyak contoh model lain, dan setiap tika model Berkaitan juga boleh dikaitkan dengan berbilang contoh model. Contohnya, dalam blog, setiap artikel mungkin mempunyai berbilang tag kategori dan setiap tag juga mungkin mempunyai berbilang artikel. Dalam model Post, tentukan kaedah tag() untuk mewakili perhubungan banyak-ke-banyak antara model dan model Tag.

class Post extends Model
{
    public function tags()
    {
        return $this->belongsToMany('AppTag');
    }
}
Salin selepas log masuk

Dalam model Tag, takrifkan kaedah belongsToMany() yang bertentangan.

class Tag extends Model
{
    public function posts()
    {
        return $this->belongsToMany('AppPost');
    }
}
Salin selepas log masuk
  1. 多态关联(Polymorphic Relations)

多态关联允许模型通过多个中介模型与其他模型进行多对多关联。例如,在应用中可以使用comments模型对其他类型的模型进行评论。在Comment模型中,定义一个commentable()方法,表示该模型与所有支持评论的模型之间的多态关系。

class Comment extends Model
{
    public function commentable()
    {
        return $this->morphTo();
    }
}
Salin selepas log masuk

在支持评论的模型中,例如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');
    }
}
Salin selepas log masuk

以上是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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Isu terkini
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan