У меня есть этот запрос, который возвращает пустую коллекцию с параметром фильтра categorie_compet_id
со значением 1
.
, пока коллекция пуста, мне нужно обновить этот идентификатор, чтобы получить коллекцию notEmpty.
categorie_compet_id
может go от 1
до 10
.
Как я могу сделать это правильно?
$arbitres = Licencies::getArbitres();
$arbitres->load('rencontreOfficiels');
$arbitres->load('divisions');
$arbitres = $arbitres->reject(function ($arbitre) use ($rencontre) {
return $arbitre->rencontreOfficiels->contains(function ($rencontreOfficiels) use ($rencontre) {
return $rencontreOfficiels->rencontre_id === $rencontre->id;
});
})->filter(function ($arbitre) {
return $arbitre->divisions->contains('categorie_compet_id', 1);
})->filter(function($arbitre) {
return $arbitre->level >= 3;
});
ОБНОВЛЕНИЕ
$arbitres->load('rencontreOfficiels');
$arbitres->load('divisions');
$arbitres = $arbitres->reject(function ($arbitre) use ($rencontre) {
return $arbitre->rencontreOfficiels->contains(function ($rencontreOfficiels) use ($rencontre) {
return $rencontreOfficiels->rencontre_id === $rencontre->id;
});
})->filter(function ($arbitre) {
return $arbitre->divisions->contains('categorie_compet_id', 1);
})->filter(function($arbitre) use ($rencontre) {
return $arbitre->doesnthave('rencontreOfficiels')->where('rencontreOfficiels.dt_rencontre' , $rencontre->dt_rencontre);
});
//on génére les meilleurs arbitres
for ($i = 1; $i < 7; $i++) {
$filtered = $arbitres->filter(function ($arbitre) use ($i) {
return $arbitre->level <= $i;
});
if ($filtered->isNotEmpty()) {
$arbitres = $filtered;
break;
}
}
Вот мой getArbitres
метод в модели:
public static function getArbitres(){
$all_licences = Licencies::whereIn('activite_licencie_id' , [24,25,50,80])
->where('valid_licence_id' , 3)
->where('saison_id' , self::getSaison()->id)
->where('dispo' , 1)
->get();
return $licences;
}