ホームページ  >  記事  >  PHPフレームワーク  >  Laravel 関連付けの使用法を調べる

Laravel 関連付けの使用法を調べる

PHPz
PHPzオリジナル
2023-04-12 09:04:28824ブラウズ

Laravel は広く使用されている PHP フレームワークであり、Web アプリケーション開発に使用される最も人気のあるフレームワークの 1 つです。相関関係などの基本的な知識が必要です。アソシエーションは、データベースに必要なデータを取得するのに役立ちます。この記事では、Laravel 関連付けの使用法について説明します。

1. はじめに

Laravel では、モデルがデータ アクセスの主な方法です。モデル間の関係は、1 対 1、1 対多、多対多などになります。アソシエーションは、モデルに格納されているデータを取得する方法です。 Laravel が提供する関連付けタイプは次のとおりです:

  1. 1 対 1 関連付け: モデル A は 1 つのモデル B にのみ関連付けることができ、モデル B は 1 つのモデル A にのみ関連付けることができます。 Laravelでは、hasOne()関数とbelongsTo()関数を使用して1対1の関連付けを実現します。
  2. 1 対多の関連付け: 1 つのモデルは複数の B モデルに関連付けることができますが、B モデルは 1 つの A モデルにのみ関連付けることができます。 Laravelでは、hasMany()関数とbelongsTo()関数を使用して1対多の関連付けを実装します。
  3. 多対多の関連付け: 1 つのモデルを複数の B モデルに関連付けることができ、B モデルを複数の A モデルに関連付けることもできます。 Laravel では、belongsToMany() 関数を使用して多対多の関連付けを実装します。

2. 1 対 1 の関連付け

1. 関連付けの確立

hasOne() 関数とbelongsTo() 関数を使用して 1 対 1 の関連付けを確立します。 -1つの協会。たとえば、ブログ システムでは、各ユーザーのホームページにプロフィール ページがあり、ユーザー モデルとプロフィール モデルを使用して 1 対 1 の関連付けを実現できます。

ユーザー モデル:

use Illuminate\Database\Eloquent\Model;

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

プロファイル モデル:

use Illuminate\Database\Eloquent\Model;

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

2.関連付けの使用

次のメソッドを使用して、関連付けられたデータにアクセスできます:

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

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

3. 1 対多の関連付け

1. 関連付けの確立

hasMany() 関数とbelongsTo() 関数を使用して 1 対多の関連付けを確立します。たとえば、ブログ システムでは、各ユーザーが複数の記事を公開でき、ユーザー モデルと記事モデルを使用して 1 対多の関連付けを実現できます。

ユーザー モデル:

use Illuminate\Database\Eloquent\Model;

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

投稿モデル:

use Illuminate\Database\Eloquent\Model;

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

2.関連付けの使用

次のメソッドを使用して、関連付けられたデータにアクセスできます:

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

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

4. 多対多の関連付け

1. 関連付けの確立

belongsToMany() 関数を使用して、多対多の関連付けを確立します。たとえば、ブログ システムでは、各記事に複数のタグを付けることができ、複数の記事で同じタグを使用することもでき、記事モデルとタグ モデルを使用して多対多の関係を実装できます。

投稿モデル:

use Illuminate\Database\Eloquent\Model;

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

タグ モデル:

use Illuminate\Database\Eloquent\Model;

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

2.関連付けの使用

次のメソッドを使用して、関連付けられたデータにアクセスできます:

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

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

5. 概要

アソシエーションは Laravel の非常に便利な機能で、データベースから必要なデータを迅速に取得するのに役立ちます。この記事では、1 対 1 のリレーションシップ、1 対多のリレーションシップ、および多対多のリレーションシップという 3 つの一般的なタイプのリレーションシップを紹介します。 Laravel を使用する開発者の参考になれば幸いです。

以上がLaravel 関連付けの使用法を調べるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。