Besoin d'aide ?

Filtrer une liste déroulante en Laravel?

  • Avatar de Soufiane1
    Membre depuis :
    09/03/2019
    Messages :
    13

    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'));
    }
  • Avatar de Dom
    Membre depuis :
    17/07/2017
    Messages :
    20

    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 ?

  • Avatar de Soufiane1
    Membre depuis :
    09/03/2019
    Messages :
    13

    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();
  • Avatar de CinquièmeDimension
    Membre depuis :
    18/04/2019
    Messages :
    31

    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...

Vous ne pouvez pas répondre à ce sujet.