Je changerais tout où par oùDans comme :
if($userid){
$q->andWhereIn('a.userid', $userid);
}
if($catID){
$q->andWhereIn('ca.categorie_id', $catID);
}
Je pense que cela se produit parce que lorsque vous utilisez les résultats dans la vue, le paginateur ne peut pas récupérer tous les enregistrements d'affilée, donc pour chaque élément doit faire la requête pour obtenir tous les champs.