sql >> Databasteknik >  >> RDS >> Mysql

Hur man använder Relation::morphMap() för olika klasser

Låt oss börja med att definiera de polymorfa relationerna

Första relationen...

Package.php

public function provider() {
  return $this->morphTo(null, 'map_type_id', 'map_id');
}

Venue.php

public function packages() {
  // you should provide the relation name, in our exemple its called `provider` as a second parameter
  return $this->morphMany(VendorPackage::class, 'provider', 'venues');
}

Vendor.php

public function packages() {
  // you should provide the relation name, in our exemple its called `provider` as a second parameter
  return $this->morphMany(VendorPackage::class, 'provider', 'vendors');
}

Andra relation

TicketBooking.php

public function provider() {
  return $this->morphTo(null, 'map_type_id', 'map_id');
}

Venue.php

public function bookings() { 
  return $this->morphMany(TicketBooking::class, 'provider', 'venues');
}

Decors.php

public function bookings() {
  return $this->morphMany(TicketBooking::class, 'provider', 'decors');
}

och registrera Relation::morphMap som

Relation::morphMap([
  'vendors' => \Vendor::class,
  'venues' =>  \Venue::class,
  'decors' =>  \Decor::class
]);



  1. MYSQL välj gemensamma vänner

  2. MySQL - hur man grupperar timme, förskjuten med 30 minuter

  3. Konvertera OracleParameter.Value till Int32

  4. Hur man skapar ett nytt fält i tabellen när användaren klickar på en länk