Я создаю систему для фильтрации требований пользователя, и для одной части я должен фильтровать по всем выбранным атрибутам, вот мой конструктор запросов:
return EncyclopedieModel::with('stats')
->join('equipement_stats', 'equipement_stats.id_equipement', '=', 'equipement.id_equipement')
->join('stats', 'stats.id_stats','=','equipement_stats.id_stats')
->whereIn('stats.id_stats', $filterStats)
->whereIn('id_typeequipement', $filterEquipement)
->whereIn('id_rarete', $filterRarity)
->skip(0 + $toskip)
->take(10)
->get()
->toJson();
Я должен фильтровать по нескольким требованиям статистики,
Сначала я беру все оборудование, которое соответствует требованию пользователя, затем я получаю статистику предмета с готовой загрузкой.
Моя проблема заключается в том, что я должен получить предмет, который имеет обе характеристики нав то же время.Например, если мой предмет имеет статистику «3» и «7», я должен получить все предметы, которые имеют обе эти статистики.
Теперь я получаю все снаряжения со статистикой «3» и все снаряжения сстатистика "7" ...
Я не знаю, как мне это реализовать
РЕДАКТИРОВАТЬ: я пытался упростить с машиной и характеристиками
[
{
"id_car":1,
"nom_car":"Car A",
"rarity": 1,
"caracteristic":[
{
"id_caracterstic":3,
"nom_stats":"Caracteristic A"
},
{
"id_caracterstic":8,
"nom_stats":"Caracteristic W"
},
{
"id_caracterstic":4,
"nom_stats":"Caracteristic Z"
}
]
},
{
"id_car":2,
"nom_car":"Car B",
"rarity": 2,
"caracteristic":[
{
"id_caracterstic":5,
"nom_stats":"Caracteristic P"
},
{
"id_caracterstic":8,
"nom_stats":"Caracteristic W"
},
{
"id_caracterstic":12,
"nom_stats":"Caracteristic ZA"
}
]
},
{
"id_car":1,
"nom_car":"Car C",
"rarity": 2,
"caracteristic":[
{
"id_caracterstic":12,
"nom_stats":"Caracteristic P"
},
{
"id_caracterstic":8,
"nom_stats":"Caracteristic W"
},
{
"id_caracterstic":14,
"nom_stats":"Caracteristic ZDD"
}
]
},
]
Как будто я должен найти в своей базе данных автомобили с редкостью "2" и характеристиками 8 и 12.
То, что я делаю сейчас, я 'я получаю автомобили A, Car B и Car C, потому что мой запрос просматривает все автомобили с характеристикой 8 и все автомобили с характеристикой 12
Я хочу, чтобы автомобили B и Car C получали только тогда, когда я ищуавтомобиль с характеристиками "8" и "12"