Laravel France

Système de recherche amélioré

Avatar de StephaneMarry
StephaneMarry

Bonjour tout le monde. J'ai un système de recherche que je voudrais améliorer.

Pour faire un topo rapide, j'ai des projets associés a des clients. Dans ma table projets, il y a une colonne 'id_client'. J'ai une fonction client() qui me permet d'avoir les informations du client en fonction du projet.

public function client(){
        return $this->belongsTo('App\Models\client', 'client_id');
    }

J'ai un scope pour la recherche qui permet de récupérer la liste des projets par rapport au nom des projets et de la recherche. J'aimerais pousser le truc en retrouvant les projets associé à un nom de client. Par exemple je te tape 'Paul' dans la barre de recherche, j'aimerais récupérer les projets associé.

Je ne vois pas comment je peux faire cette méthode. Il y a un t'il un moyen d'utiliser la méthode client() ? Voici mon scope et merci de votre aide.

    public function scopesearch($query, $term){   
           return  $query->where('name', 'Like', '%' . $term . '%');   
 }
Posté il y a 1 mois
Avatar de bestmomo
bestmomo

Salut,

Essaie un truc comme ça :

  public function scopesearch($query, $term){   
           return  $query->where('name', 'Like', '%' . $term . '%')
               ->orWhereHas('client', function($query) use ($term) {
                       $query->where('name', 'like',  '%' . $term . '%');
           }); 
 }
Posté il y a 1 mois

Vous ne pouvez pas répondre à ce sujet.