Php 与2数据透视表数据搜索的多对多关系
在前端,用户可以根据显示数据所需的选项选择多个资格(复选框)和技能(复选框)Php 与2数据透视表数据搜索的多对多关系,php,laravel,laravel-5.2,many-to-many,Php,Laravel,Laravel 5.2,Many To Many,在前端,用户可以根据显示数据所需的选项选择多个资格(复选框)和技能(复选框) 例如:如何让具有资格证书的学生毕业并获得MBA和技能Laravel和PHP这里是一个关于如何做到这一点的示例(由于您的问题中缺乏细节,可能不准确,但应该给您一个想法) (我认为您最好使用多个选择框,而不是技能和资格的复选框) 假设您希望通过技能和资格搜索学生 在模型中有正确的关系方法 Skills ------- id name 1 PHP 2 Laravel Qualifications --------
例如:如何让具有资格证书的学生毕业并获得MBA和技能Laravel和PHP这里是一个关于如何做到这一点的示例(由于您的问题中缺乏细节,可能不准确,但应该给您一个想法) (我认为您最好使用多个选择框,而不是技能和资格的复选框) 假设您希望通过技能和资格搜索学生 在模型中有正确的关系方法
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
如果传递的是ID数组而不是名称数组
//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)
}
学历也是如此
我希望你能明白这一点,你可以进行分类和填充,这可能不是你需要的东西,但如果你得到了它,它会对你有很大帮助。你需要什么样的细节@Achrafkhouadjlike,实际问题是什么?你的密码在哪里?看到它的工作感谢您的快速响应@AchrafKhouadjagreat,将此标记为答案,如果您愿意,请上传。真为你高兴。
if (!empty($request->skills)) {
$data->whereHas('skills', function ($query) use ($skills) {
$query->whereIn('id', $skills);
})->get();
}