मूल रूप से आपकी चार टेबल कुछ इस तरह होंगी:
कर्मचारी
- आईडी
- ...आपके क्षेत्र
प्रोजेक्ट
- आईडी
- ...आपके क्षेत्र
रोजगार
- आईडी
- ...आपके क्षेत्र
कर्मचारी_परियोजना
- कर्मचारी_आईडी
- project_id
- रोजगार_आईडी
आप समस्या को 2 से 2 संबंधों में विभाजित कर सकते हैं:
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')
}
}
एक प्रोजेक्ट मॉडल
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')
}
}
एक रोजगार मॉडल
class Employment extends Model{
public function employees(){
return $this->belongsToMany("Employee")
}
public function projects(){
return $this->belongsToMany("Project")
}
}
इस बिंदु पर आप अपने नियंत्रक में अपने संबंध का प्रबंधन कर सकते हैं, उदाहरण के लिए यदि आप $ कर्मचारी को जोड़ना चाहते हैं, तो आईडी 2 के साथ रोजगार के साथ आईडी 1 वाला प्रोजेक्ट आप आसानी से कर सकते हैं
$employee->projects()->attach([1 => ['employment_id' => '2']]);
मुझे आशा है कि यह आपके प्रश्न का उत्तर देगा।
अगर आपको अपनी पिवट टेबल में टाइमस्टैम्प चाहिए, तो अपने रिश्तों में ->withTimesetamps() जोड़ें।