public function memberCard(): HasOne { return $this->hasOne(MemberCard::class); } } MemberCard (従) との relation の定義 class MemberCard extends Model { public function member(): BelongsTo { return $this->belongsTo(User::class); } } User (主) との relation の定義 User MemberCard 1 1 1:1 の ER モデル例
{ public function posts(): HasMany { return $this->hasMany(Post::class); } } Post (従) との relation の定義 class Post extends Model { public function author(): BelongsTo { return $this->belongsTo(User::class); } } User (主) との relation の定義 User Post 1 n 1 :n の ER モデル例
public function roles(): BelongsToMany { return $this->belongsToMany(Role::class); } } Role との relation の定義 class Role extends Model { public function users(): BelongsToMany { return $this->belongsToMany(User::class); } } User との relation の定義 RoleUser Role 1 m User 1 n m:n の ER モデル例
中間のモデルのクラス名 class User extends Model { public function point(): HasOneThrough { return $this->hasOneThorugh(MemberPoint::class, MemberCard::class); } } MemberCard を経由した relation の定義 User MemberCard 1 1 MemberPoint 1 1 HasOneThrough の ER モデル例
第2引数: 中間のモデルのクラス名 class User extends Model { public function Transactions(): HasManyThrough { return $this->hasManyThorugh(Transaction::class, MemberCard::class); } } MemberCard を経由した relation の定義 User MemberCard 1 1 Transaction 1 n HasManyThrough の ER モデル例