Ich benutze Laravel polymorphe Beziehung. Ich habe zwei MorphTo-Beziehungen für zwei Zwecke definiert. Meine Frage ist das, aber wenn ich den Schlüssel des relation :: morphMap() -Funktionsarrays definiere, dann ist mein Array-Schlüssel für einen Fall gleich, also möchte ich wissen, ob es irgendeinen Weg gibt, mit dem ich angeben kann, dass ich bin Definieren der Beziehung für eine bestimmte Klasse.Wie verwendet man Relation :: MorphMap() für verschiedene Klassen
Meine erste Beziehung ....
Package.php
public function provider()
{
return $this->morphTo(null, 'map_type_id', 'map_id');
}
Venue.php
public function packages()
{
return $this->morphMany(VendorPackage::class, 'map', 'map_type_id', 'map_id');
}
Vendor.php
public function packages()
{
return $this->morphMany(VendorPackage::class, null, 'map_type_id', 'map_id');
}
Ich möchte den Schlüssel zum Vergleich mit map_type_id setzen, damit ich den Schlüssel in Service Provider einstelle.
Relation::morphMap([
config('evibe.roles.planner') => \Vendor::class,
config('evibe.roles.artist') => \Vendor::class,
config('evibe.roles.venue') => \Venue::class,
], false);
Mein 2. morphTo Beziehung
Ticket Booking.php
public function provider()
{
return $this->morphTo(null, 'map_type_id', 'map_id');
}
Venue.php
public function bookings()
{
return $this->morphMany(TicketBooking::class,null,'map_type_id','map_id');
}
Decors.php
public function bookings()
{
return $this->morphMany(TicketBooking::class,null,'map_type_id','map_id ');
}
Jetzt muss ich wieder das MorphTo im Dienstanbieter definieren, weil ich nicht den Standard-Modellnamen verwende.
so meine morphTo in Service Provider wurde so.
Relation::morphMap([
config('evibe.roles.planner') => \Vendor::class,
config('evibe.roles.artist') => \Vendor::class,
config('evibe.roles.venue') => \Venue::class,
config('evibe.ticket_type.venues') => \Venue::class,
config('evibe.ticket_type.decors') => \Decor::class
], false);
Nun mein Problem ist, dass die Schlüssel config ('evibe.roles.planner') und config ('evibe.ticket_type.venues) hat den gleichen Wert 3, wenn so beide Dinge zugegriffen wird die Beziehung dann wirft es Fehler, weil Array denselben Schlüssel haben.
Also ich möchte fragen, gibt es eine andere Möglichkeit, verschiedene MorphMap für unterschiedliche Beziehung zu definieren.