Nou Generator de prompt AI — scrie prompturi mai bune pentru ChatGPT, Claude și Gemini →

Relația Many-to-Many cu belongsToMany() și Tabele Pivot în Laravel

eloquent Laravel 11.x / Eloquent Q&A / Distribuie cod

Modelarea relațiilor multe-la-multe prin tabele intermediare de legătură (pivot): metodele attach(), detach(), sync() și toggle().

Sintaxă
public function roles() { return $this->belongsToMany(Role::class)->withTimestamps(); }

Relația Many-to-Many conectează două modele prin intermediul unei tabele de asociere (pivot table), cum ar fi relația dintre utilizatori și roluri sau dintre articole și taguri.

Metoda belongsToMany() permite configurarea tabelei pivot, iar Eloquent furnizează operațiuni avansate pentru sincronizarea asocierilor: $user->roles()->sync([1, 2, 3]) actualizează lista eliminând rolurile vechi și adăugându-le pe cele noi printr-o singură comandă.

Exemplu: Relație Many-to-Many și sincronizare roluri cu sync()
namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;

class User extends Model
{
    public function roles(): BelongsToMany
    {
        return $this->belongsToMany(Role::class, 'role_user', 'user_id', 'role_id')
                    ->withPivot('assigned_by')
                    ->withTimestamps();
    }
}

// Utilizare în cod:
// $user->roles()->attach($roleId); // Adaugă rol
// $user->roles()->detach($roleId); // Șterge rol
// $user->roles()->sync([1, 2]);    // Păstrează doar rolurile 1 și 2

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Relația Many-to-Many cu belongsToMany() și Tabele Pivot

Ai o nelămurire despre utilizarea comenzii Relația Many-to-Many cu belongsToMany() și Tabele Pivot 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.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.