protected function filter2($filterValue) { //Pour les questions, le filter 2 est une Classe if ($filterValue == 0) { // 0 indique 'Tous' sur filter2 $lignes = $this->model->all()->sortBy('nom'); } else { try { $tps = Classe::find($filterValue)->tps; //cherche les TPs associés à la Classe sélectionnée $modelIds = []; foreach ($tps as $tp) { //créé la liste des ids des questions pour tous ces TPs. $modelIds = array_merge($modelIds, $this->filter1($tp)->lists('id')->all()); } //une questions peut être avec 2 TPs, il faut donc aller les chercher par leur id afin d'enlever les doublons if (count($modelIds) > 0) { $lignes = $this->model->whereIn('id', $modelIds)->get()->sortBy('nom'); } else { $lignes = new Illuminate\Database\Eloquent\Collection(); } } catch (Exception $e) { $lignes = new Illuminate\Database\Eloquent\Collection(); } } return $lignes; }