Laravel は広く使用されている PHP フレームワークであり、Web アプリケーション開発に使用される最も人気のあるフレームワークの 1 つです。相関関係などの基本的な知識が必要です。アソシエーションは、データベースに必要なデータを取得するのに役立ちます。この記事では、Laravel 関連付けの使用法について説明します。
1. はじめに
Laravel では、モデルがデータ アクセスの主な方法です。モデル間の関係は、1 対 1、1 対多、多対多などになります。アソシエーションは、モデルに格納されているデータを取得する方法です。 Laravel が提供する関連付けタイプは次のとおりです:
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 サイトの他の関連記事を参照してください。