2017-02-12 88 views
0
Skills 
------- 
id name 
1 PHP 
2 Laravel 

Qualifications 
----------------- 
id name 
1 MBA 
2 Graduate 
3 Post Graduate 

students 
------------ 
id name 
1 John 
2 Smith 

2 pivot tables 

student_skills 

student_id skill_id 
1   1 
1   2 
2   1 

student_qualifications 

tutor_id qualification_id 
1   2 
1   2 
2   2 

在前端,用戶可以根據選擇的選項選擇我們需要顯示數據的多個資格(複選框)和技能(複選框)。與2個數據透視表數據搜索的多對多關係

例如:如何讓學生資格的研究生和MBA和技能Laravel和PHP

+0

更多詳細資訊請致電 –

+0

您需要什麼資料@AchrafKhouadja –

+0

喜歡,真正的問題是什麼?你的代碼在哪裏?請參閱[問] –

回答

1

這裏是你如何能做到這一點的例子(這可能是不準確由於缺乏細節你的問題,但它應該給你一個想法)

(我想你最好使用一座耗資選框代替的複選框技能&資質)

假設你要搜索的學生通過技能&資格 而且,你有你的模型

//Don't forget to import Students model at top of the controller 
public function whatever(Request $request) 
    { 
    $data = Student::with('qualifications', 'skills'); 

    // assuming that the form will pass an array of skills names 
    //if the form passes an array of ID's of skills it becomes easier 

    if (!empty($request->skills)) { 
     foreach ($request->skills as $skill) { 
      $data->whereHas('skills', function ($query) use ($skill) { 
       $query->where('id', $skill); 
      })->get(); 
     } 
    } 

     // same goes for qualifications 
    if (!empty($request->qualifications)) { 
     foreach ($request->qualifications as $qualification) { 
      $data->whereHas('qualifications', function ($query) use ($skill) { 
       $query->where('id', $qualification); 
      })->get(); 
     } 
    } 

    // execute the query now 
    $data->get(); // or pagniate(10) 
} 

內的權利關係的方法,如果你是路過的ID,而不是名稱

if (!empty($request->skills)) { 
      $data->whereHas('skills', function ($query) use ($skills)     { 
       $query->whereIn('id', $skills); 
      })->get(); 
    } 

同樣適用於資格的數組。

我希望你在這裏得到重點,你可以排序和東西,這可能不是你需要的確切的東西,但它會幫助你很多,如果你得到它。

+0

它的工作感謝您的快速回復@AchrafKhouadja –

+0

偉大的,標記爲答案,如果你喜歡它的話。爲你感到高興。 –

相關問題