Bonjour
pouvez vous me dire pourquoi mon resaltat ne s'affiche pas dans ma vue voici mon code
public function chercher(Request $request)
{
$q = $request->input('q');
$posts = Post::where('name', 'like', '%$q%')->orwhere('ref','like','%$q%')->paginate(5);
return view('posts.index',compact('posts',$posts));
}
et la vue
@if(count($posts)>0)
...
@else
<p>aucun produits trouvé</p>
@endif
merci
Bonjour,
Ton $posts doit être vide. Est-ce que tu peux rajouter, après ta ligne de requête :
dump($posts);
Normalement il est vide.
Voici comment je ferai :
$name = "%$q%";
$posts = Post::where('name', 'like', $name)->orWhere('ref','like',$name)->paginate(5);
Autre chose à corriger pour le compact il te suffit de faire :
return view('posts.index',compact('posts'));
Tiens moi au courant et bon courage
Edit : j'avais mis du gras dans les parties de code à priori ça ne fonctionne pas.
Je te renvoies à la doc php sur les doubles et simples quote : ici
En gros, dans ton cas, le double quote va interpréter ta variable $q tant dis que le simple quote ne le fera pas. Du coup en simple quote SQL verra LIKE '%$q%', $q n'étant pas interprété.
Tu aurais très bien pu mettre le "%$q%" directement dans la condition where et orWhere.
Voilà, j'espère avoir été compréhensible :)