Bonjour,

J'aimerais faire une recherche avec plusieurs filtres, depuis mon composant VueJS et en appelant mon controlleur Laravel.

Ce que je fais actuellement avec une recherche simple

<button class="btn btn-primary" @click="search" @keyup.enter="search" type="button">Search</button>

methods: {
            search() {
                axios.get('/races/find?q=%'+ this.query+'%').then(
                    response => {
                        this.races=response.data;
                    }
                );
            }
        }

Dans web.php

Route::get('/race/find', 'RacesController@searchRaces');

Dans RacesController

{
    return DB::connection('mysql1')->select(REQUEST);
} 

Ce que je veux faire

J'aimerais faire la même chose mais avec une requête aux multiples entrées (une quinzaine en tout, et pas forcément des nombres ou des string). ça ne rentrera donc pas dans ma route et j'aimerais utiliser directement mon controller Laravel, ou réussir à passer un argument Objet (ou de multiples arguments) à ce controlleur.

Merci beaucoup d'avance, je patauge :)

1 réponse


Bonjour.
Tu as déjà un premier problème, dans ton script js, tu appelles l'url /races/find soit avec un s à la fin de race alors que dans ton routing tu as défini /race/find soit sans s à la fin de race.
Ensuite, tu devrais éviter le symbole % dans l'url, il te faut plutôt l'ajouter dans ta requête SQL.
Pour terminer, d'où vient cette constante REQUEST dans ta fonction searchRaces ?