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
Întrebări & Exemple de Cod:
Relația Many-to-Many cu belongsToMany() și Tabele PivotAi o nelămurire despre utilizarea comenzii
Relația Many-to-Many cu belongsToMany() și Tabele Pivotsau 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.