Я хотел бы получить случайный предмет из коллекции. если случайный элемент уже существует в моей коллекции $ candidat_exist, я хотел бы снова выполнить случайный выбор, чтобы получить элемент, отличный от того, который хранится в таблице rencontre_officiel
Я думал, что-то подобное будет работать
\\App\Licencies collection
$candidat = $arbitres->random();
$candidat_exist = \App\RencontreOfficiel::where('licencie_id' , $candidat->id)->where('rencontre_id' , $rencontre->id)->exists();
while ($candidat_exist){
$candidat = $arbitres->random();
}
dd($candidat);
my $ candidat_exist имеет значение true, поэтому я хотел бы произвольно назначить другое значение
ОБНОВЛЕНИЕ:
$arbitres = Licencies::getArbitres();
, и моя функция 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;
Здесь моя модель отношений с моделью Licencies:
class RencontreOfficiel extends Model
{
public function rencontre(){
return $this->belongsTo('App\Rencontre' , 'rencontre_id');
}
public function licence(){
return $this->belongsTo('App\Licencies' , 'licencie_id');
}
}
Здесь мои классовые лицензии с разделами отношений
public function divisions(){
return $this->hasMany(LicenceDesignationDivision::class , 'licence_id');
}
Здесь моя коллекция $ арбитров:
$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;
});
Мне нужно проверить, есть ли у меня пустая коллекция, мне нужно изменить значение categoryorie_compet_id, и если я все еще ничего не получаю, мне нужно изменить условие уровня.
как я могу достичь этого быстро?