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.