Bonjour !
Voila, je suis en train de développer un site marchand, et tout est presque fini, donc je m'attelle à des choses un peu... Secondaire dirons-nous, mais qu'on ne peut certainement pas mettre de côté avant le lancement du site. Donc, la barre de recherche qui peut permettre de rechercher directement le ou les produits associés.
Donc ! J'en avais fait un il y a deux ans, mais c'était un peu naze, je checkais simplement l'expression entière et je la vérifiais dans une zone précise. Là, je veux séparer les mots clés entrés, et vérifier dans le nom du produit, la référence ET la description si ils y sont. Mais pour l'instant, je bloque déjà sur le nom du produit, alors je suis une bonne grosse quiche lorraine.
J'ai déjà fait un petit formulaire de recherche en laravel, donc du coup la forme je l'ai ; c'est pour la syntaxe je pense que ça bloque, parce qu'on doit me dire : "Ah non, cherche pas, deux Where dans la même requête, pour vérifier le même champ, moi, je démissionne.". Ce que je peux comprendre, l'escavagisme est aboli, mais bon, c'est un peu relou.
Donc : voici le code que j'ai essayé de pondre pour l'instant :
Voici l'un des résultats que ça me donne quand je le lance comme ça (en abrégé) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 $clefs = Input::get('recherche'); $mots = explode(' ', $clefs); $resultat = DB::table('produits'); foreach($mots as $m) { $resultat->where('nom', 'like', '%'.$m.'%'); } $resultat->get(); var_dump($resultat);
Et quand j'essaye, par folie, de faire un :object(Illuminate\Database\Query\Builder)[236]
protected 'connection' =>
object(Illuminate\Database\MySqlConnection)[229]
protected 'pdo' =>
object(PDO)[230]
protected 'readPdo' => null
protected 'reconnector' =>
object(Closure)[235]
protected 'queryGrammar' =>
object(Illuminate\Database\Query\Grammars\MySqlGrammar)[231]
protected 'selectComponents' =>
array (size=11)
...
On me dit "Trying to get properties of non-object", ce que je peux comprendre, j'aurai pas aimé qu'on insulte ma maman moi non plus. Du coup, je suppute que pour faire une requête de ce genre, il faut que je me fasse des sous-requêtes, non ? Le soucis, c'est qu'en Laravel, je n'en ai jamais fait, et j'ai pas spécialement envie de patauger pendant encore trois heures parce que bon. Je m'en remet donc à vous : insultez-moi, trainez-moi dans la boue, tout ce que vous voudrez, mais si vous avez une idée pour faire marcher ma simple petite recherche, n'hésitez pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 foreach($resultat as $r) { echo $r->produits->nom; }
Merci !
Partager