Besoin d'aide ?

Filtrer une liste déroulante en Laravel?

Avatar de Soufiane1
Soufiane1

Bonsoir,

Je suis confronté à un soucis que je ne parviens pas à résoudre, je me permets de vous écrire pour solliciter votre aide. J'ai en fait, deux formulaires, le premier est intitulé formers avec 2 champs (nom et prénom).

J'ai aussi un autre formulaire qui se nomme trainings avec 2 champs (date_sitting, fk_former).

Mon problème est que si je veux ajouter une autre séance aujourd'hui (07/07/2019), j'aimerais faire apparaître dans ma liste déroulante seulement les formers qui n'ont pas de formations aujourd'hui.

Par exemple, ci-dessous je récupère tous les formers même ceux qui ont déjà été sélectionné aujourd'hui ce qui est un problème

Je suis occupé à tenter de créer une méthode pour ça mais je bloque complètement...

Y a des tutos avec Carbon, mais j'aimerais le faire sans, je débute tout juste avec Laravel.

public function create()            
    {
        
        $formers = Former::all();
        $formersNoTrainingToday = Training::where('date_sitting', "!=", ??????
        return view('admin.trainings.create', compact('formers','trainings'));
    }
Posté il y a 1 an
Avatar de Dom
Dom

Une fois que tu as changé la date, il faut que tu recharges en ajax le contenu de ta liste déroulante. Sauf si c'est toujours la date du jour, auquel cas il faudra que tu fasses ta requete dans la fonction create. Mais par contre, je ne pense pas que ta requete soit bonne il faut une liaison avec Former non ?

Posté il y a 1 an
Avatar de Soufiane1
Soufiane1

Bonjour Dom,

Je ne peux malheureusement pas encore utilisé l'Ajax étant donné qu'on ne l'a pas encore appris à mon école.

Mon soucis est vraiment au niveau de la requête, je ne comprends pas comment je peux sortir tous les "formers" qui n'ont pas de cours le jour même?

Dans ma function create j'ai ceci use Carbon\Carbon;



$formersNoTrainingToday = Training::whereDate('date_sitting', "!=", Carbon::today())
           ->orWhere('date_sitting', null)->get();
Posté il y a 1 an
Avatar de CinquièmeDimension
CinquièmeDimension

Salut,

Si tu ne veux pas utiliser Carbon, tu peux toujours utiliser la fonction date() de php que tu formate en fonction du format du champ date_sitting Si c'est in timestamp c'est date("Y-m-d H:i:s") Par contre je suis pas certain que le whereDate gere le != un simple where est peut-être mieux...

Posté il y a 1 an

Vous ne pouvez pas répondre à ce sujet.