Rumah  >  Artikel  >  rangka kerja php  >  Terokai penggunaan persatuan Laravel

Terokai penggunaan persatuan Laravel

PHPz
PHPzasal
2023-04-12 09:04:28824semak imbas

Laravel ialah rangka kerja PHP yang digunakan secara meluas dan salah satu rangka kerja paling popular digunakan untuk pembangunan aplikasi web. Ia memerlukan beberapa pengetahuan asas seperti korelasi. Persatuan membantu mendapatkan data yang diperlukan dalam pangkalan data. Artikel ini akan meneroka penggunaan persatuan Laravel.

1. Pengenalan

Dalam Laravel, model ialah cara utama akses data. Hubungan antara model boleh menjadi satu-ke-satu, satu-ke-banyak, banyak-ke-banyak, dsb. Persatuan ialah satu cara untuk mendapatkan data yang disimpan dalam model. Berikut ialah jenis perkaitan yang disediakan oleh Laravel:

  1. Perkaitan satu dengan satu: Model A hanya boleh dikaitkan dengan satu model B dan model B hanya boleh dikaitkan dengan satu model A. Dalam Laravel, gunakan fungsi hasOne() dan fungsi belongsTo() untuk mencapai perkaitan satu dengan satu.
  2. Perkaitan satu dengan banyak: Model boleh dikaitkan dengan berbilang model B, tetapi model B hanya boleh dikaitkan dengan satu model A. Dalam Laravel, gunakan fungsi hasMany() dan fungsi belongsTo() untuk melaksanakan perkaitan satu-ke-banyak.
  3. Perkaitan banyak-ke-banyak: Model boleh dikaitkan dengan berbilang model B dan model B juga boleh dikaitkan dengan berbilang model A. Dalam Laravel, gunakan fungsi belongsToMany() untuk melaksanakan perkaitan banyak-ke-banyak.

2. Satu-dengan-satu persatuan

1 Wujudkan persatuan

Gunakan fungsi hasOne() dan belongsTo() untuk mewujudkan satu-kepada. -satu persatuan. Sebagai contoh, dalam sistem blog, halaman utama setiap pengguna mempunyai halaman profil Kita boleh menggunakan model pengguna dan model profil untuk mencapai perkaitan satu dengan satu.

Model pengguna:

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    public function profile(){
        return $this->hasOne('App\Profile');
    }
}

Model profil:

use Illuminate\Database\Eloquent\Model;

class Profile extends Model
{
    public function user(){
        return $this->belongsTo('App\User');
    }
}

2. Menggunakan perkaitan

Anda boleh menggunakan kaedah berikut untuk mengakses data yang berkaitan :

//获取用户的个人资料
$user = User::find(1);
$profile = $user->profile;

//获取个人资料所属的用户
$profile = Profile::find(1);
$user = $profile->user;

3. Persatuan satu-ke-banyak

1 Wujudkan persatuan

Gunakan fungsi hasMany() dan belongsTo() untuk mewujudkan satu-kepada. -banyak persatuan. Sebagai contoh, dalam sistem blog, setiap pengguna boleh menerbitkan berbilang artikel, dan kami boleh menggunakan model pengguna dan model artikel untuk mencapai perkaitan satu-ke-banyak.

Model pengguna:

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    public function posts(){
        return $this->hasMany('App\Post');
    }
}

Model siaran:

use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    public function user(){
        return $this->belongsTo('App\User');
    }
}

2. Menggunakan perkaitan

Anda boleh menggunakan kaedah berikut untuk mengakses yang berkaitan data:

//获取用户发表的所有文章
$user = User::find(1);
$posts = $user->posts;

//获取某篇文章所属的用户
$post = Post::find(1);
$user = $post->user;

4. Persatuan Many-to-Many

1 Menubuhkan persatuan

Gunakan fungsi belongsToMany() untuk menubuhkan persatuan many-to-many . Contohnya, dalam sistem blog, setiap artikel boleh mempunyai berbilang teg, dan teg yang sama juga boleh digunakan oleh berbilang artikel Kita boleh menggunakan model artikel dan model teg untuk melaksanakan perhubungan banyak-ke-banyak.

Model siaran:

use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    public function tags(){
        return $this->belongsToMany('App\Tag');
    }
}

Model teg:

use Illuminate\Database\Eloquent\Model;

class Tag extends Model
{
    public function posts(){
        return $this->belongsToMany('App\Post');
    }
}

2. Menggunakan perkaitan

Anda boleh menggunakan kaedah berikut untuk mengakses data yang berkaitan :

//获取某篇文章使用的所有标签
$post = Post::find(1);
$tags = $post->tags;

//获取某个标签下的所有文章
$tag = Tag::find(1);
$posts = $tag->posts;

5. Ringkasan

Persatuan ialah fungsi yang sangat berguna dalam Laravel, yang boleh membantu kami mendapatkan data yang diperlukan daripada pangkalan data dengan cepat. Artikel ini memperkenalkan tiga jenis perhubungan yang biasa: perhubungan satu dengan satu, perhubungan satu dengan ramai dan perhubungan ramai dengan ramai. Saya harap ia akan membantu pembangun yang menggunakan Laravel.

Atas ialah kandungan terperinci Terokai penggunaan persatuan Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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