J'essaie d'écrire une méthode dans mon contrôleur pour permettre la recherche des résultats de ma requête sur ma page d'affichage. La requête sélectionne tous les résultats de la table "ads" et cette méthode doit permettre de filtrer les résultats par le nom de l'annonce en entrant des mots-clés dans la barre de recherche. Le code du contrôleur va comme ceci:Rechercher toutes les méthodes manquantes où argument dans Laravel 5
public function index(Request $request)
{
$title = trans('ad.title');
$ads = Ad::paginate(10);
if (!empty($request->input('search_all'))) {
$search_all = urldecode($request->input('search_all'));
$ads->where(function ($query) use ($search_all) {
$query->where('name', 'like', '%'.$search_all.'%')->get();
});
}else {
// Returning to view
return view('admin.ad.list')
->with('ads', $ads)
->with('title', $title);
}
}
Cependant, quand je lance une recherche que je reçois l'erreur suivante: "Missing argument 2 pour Illuminate \ Support \ Collection :: où()". Qu'est-ce que je fais de mal?
Déplacez votre '-> get()' de la ligne 'query' de $ à après de la fonction'}) ' – fez
Merci pour la suggestion, mais malheureusement, cela ne faisait aucune différence:/ – Davi