Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Membangun hubungan ternary menggunakan Laravel Eloquent Relationships

Pada dasarnya empat tabel Anda akan menjadi seperti:

karyawan

  • id
  • ...bidang Anda

proyek

  • id
  • ...bidang Anda

pekerjaan

  • id
  • ...bidang Anda

proyek_karyawan

  • id_karyawan
  • project_id
  • id_pekerjaan

Anda dapat membagi masalah menjadi 2 dengan 2 relasi:

class Employee extends Model{
  public function projects(){
    return $this->belongsToMany("Project")
  }

  // Second relation is Optional in this case
  public function employments(){
    return $this->belongsToMany("Employment", 'employee_project')
  }
}

Model Proyek

class Project extends Model{
  public function employees(){
    return $this->belongsToMany("Employee")
  }

  // Second relation is Optional in this case
  public function employments(){
    return $this->belongsToMany("Employment",'employee_project')
  }
}

Model Ketenagakerjaan

class Employment extends Model{
  public function employees(){
    return $this->belongsToMany("Employee")
  }

  public function projects(){
    return $this->belongsToMany("Project")
  }
}

Pada titik ini di pengontrol Anda, Anda dapat mengelola hubungan Anda, misalnya jika Anda ingin menambahkan ke $employee, proyek dengan id 1 dengan pekerjaan dengan id 2 Anda cukup

$employee->projects()->attach([1 => ['employment_id' => '2']]);

Saya harap ini menjawab pertanyaan Anda.

Jika Anda memerlukan stempel waktu di tabel pivot, tambahkan ->withTimesetamps() ke hubungan Anda.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tidak dapat bermigrasi menggunakan ModelState dan ProjectState menggunakan API migrasi di Django 3.0.3

  2. Bagaimana cara menyimpan nilai dari kueri sql ke dalam variabel?

  3. Hapus catatan duplikat tanpa membuat tabel sementara

  4. Cara mengatur entitas (doktrin) untuk tampilan basis data di Symfony 2

  5. Redirect ke halaman rumah setelah login php