LaravelのBelongsToとHasOneの違いは何ですか?質問する

LaravelのBelongsToとHasOneの違いは何ですか?質問する


誰か、主な違いは何なのか教えてくれませんか?属するそしてハスワン関係雄弁な

ベストアンサー1

主な違いは、関係のどちら側が関係の外部キーを保持するかです。 を呼び出すモデルは、関係$this->belongsTo()内の所有モデルであり、所有モデルのキーを保持します。one-to-onemany-to-one

一対一関係:

class User extends Model {
  public function car() {
    // user has at maximum one car, 
    // so $user->car will return a single model
    return $this->hasOne('Car');
  }
}

class Car extends Model {
  public function owner() {
    // cars table has owner_id field that stores id of related user model
    return $this->belongsTo('User'); 
  }
}

一対多関係:

class User extends Model {
  public function phoneNumbers() {
    // user can have multiple phone numbers, 
    // so $user->phoneNumbers will return a collection of models
    return $this->hasMany('PhoneNumber');
  }
}

class PhoneNumber extends Model {
  public function owner() {
    // phone_numbers table has owner_id field that stores id of related user model
    return $this->belongsTo('User'); 
  }
}

おすすめ記事