Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Mối quan hệ hùng hồn của Laravel giữa 3 bảng

Trong giản đồ hiện tại của bạn, bạn sẽ không thể gắn thẻ vai trò của nghệ sĩ trên cơ sở album.
Vì không có mối quan hệ nào trong các bảng của bạn để xác định rằng mục nhập trong artist_role bảng dành cho album cụ thể. Vì vậy, những gì tôi đề xuất là tạo một bảng trung gian chứa role_id , artist_id album_id .
Để sử dụng bảng trung gian này với manyToMany của laravel , bạn có thể xác định các phương thức trong mô hình của mình, chỉ định một thuộc tính làm thuộc tính pivot.

Ví dụ:trong Mô hình nghệ sĩ :

public function Roles(){
    return $this->belongsToMany('App\Roles')->withPivot('album_id');
}

public function Albums(){
    return $this->belongsToMany('App\Albums')->withPivot('role_id');
}

Cũng xác định các phương pháp tương tự cho các Mô hình khác ..

Cập nhật:

Để nhận được Artist với vai trò của nó trong Album, hãy thêm phương thức sau vào Album mô hình:

public function Artists(){
    return $this->belongsToMany('App\Artist')->withPivot('role_id');
}

Đối với các vai trò, hãy thêm phương thức sau:

public function Roles(){
    return $this->belongsToMany('App\Roles')->withPivot('artist_id');
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hàm MySQL để xác định vùng lân cận / phạm vi mã Zip

  2. Tôi đang nhận được một bảng html / jsp trống không có dữ liệu nào được trích xuất

  3. tạo số duy nhất mysql

  4. Chèn PHP PDO bằng cách sử dụng vòng lặp

  5. Tìm tất cả các cột số nguyên đang đạt đến giới hạn của nó bằng cách sử dụng information_schema