Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak używać Relation::morphMap() dla różnych klas

Zacznijmy od zdefiniowania relacji polimorficznych

Pierwsza relacja....

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');
}

Druga relacja

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');
}

i zarejestruj Relation::morphMap jako

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Błąd podczas zmiany nazwy kolumny w MySQL

  2. Jak używać orderby na elemencie połączonym metodą Laravel Eloquent WITH

  3. Jak automatycznie zalogować się w MySQL ze skryptu powłoki?

  4. Włącz wykonywanie wielu instrukcji podczas wykonywania przez sqlalchemy

  5. bardzo duża tabela mysql i raportowanie