O relație polimorfică permite unui model să aparțină mai multor tipuri diferite de modele folosind o singură tabelă de date. De exemplu, un model Comment poate fi atașat atât unui Post, cât și unui Video sau unui Product.
Tabela de comentarii folosește două coloane: commentable_id (ID-ul numeric) și commentable_type (clasa modelului sau alias-ul din Relation::enforceMorphMap).
Exemplu: Comentarii polimorfice pentru Postări și Clipuri Video
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\MorphTo;
use Illuminate\Database\Eloquent\Relations\MorphMany;
class Comment extends Model
{
public function commentable(): MorphTo
{
return $this->morphTo();
}
}
class Post extends Model
{
public function comments(): MorphMany
{
return $this->morphMany(Comment::class, 'commentable');
}
}
Întrebări & Exemple de Cod:
Relații Polimorfice cu morphTo() și morphMany()Ai o nelămurire despre utilizarea comenzii
Relații Polimorfice cu morphTo() și morphMany()sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.