2017-08-26 3 views
1

J'essayais d'implémenter la recherche avec laravel où je veux soumettre le formulaire avec la méthode post et essayer d'afficher la requête comme ceci.Implémentation de la recherche avec Laravel

abc.com/search/q=res 

Voici mes itinéraires:

Route::post('productSearch','[email protected]'); 
    Route::get('search/q={query}','[email protected]'); 

public function productSearch(Request $request) 
    { 
     $query = $request->name; 
     return redirect('search/q='.$query); 
    } 

    public function searchProduct(Request $request) 
    { 
     $name = $request->query; 
     $products = DB::table('products')   
      ->select('products.*')    
      ->where('products.name' , 'like', '%'.$name.'%') //Error in this line 

     return view('product',compact('products')); 
    } 

Mais le problème est-il montre l'erreur suivante

Object of class Symfony\Component\HttpFoundation\ParameterBag could not be converted to string 

Comment implémenter la recherche dans l'URL où dans des spectacles de cette façon?

Répondre

1

Définir votre itinéraire avec Route::get('search','[email protected]');

Dans l'utilisation de la fonction $params = Input::get('q'); pour obtenir une variable.

Exemple pour demander search?q=name

public function searchProduct(Request $request) 
    { 
     $name = Input::get('q'); 
     // or this option 
     //$name = $request->input('q'); 
     $products = DB::table('products')   
      ->select('products.*')    
      ->where('products.name' , 'like', '%'.$name.'%') //Error in this line 

     return view('product',compact('products')); 
    } 

Ou définir votre itinéraire Route::get('search/{search}','[email protected]');

Dans l'utilisation de la fonction public function searchProduct($search) pour obtenir la variable recherche $

Exemple demander abc.com/search/xxxxxxxx

public function productSearch(Request $request) 
    { 
     $query = $request->name; 
     return redirect('search/'.$query); 
    } 
public function searchProduct($search) 
    { 
     $products = DB::table('products')   
      ->select('products.*')    
      ->where('products.name' , 'like', '%'.$search.'%'); 

     return view('product',compact('products')); 
    } 
+0

quand j'ai essayé avec le deuxième option, la requête ne fonctionne pas, signifie qu'il montre toutes les données de produits – User57

+0

@U Utilisez le deuxième formulaire que j'ai posté, et vérifiez que la fonction productSearch reçoit $ request-> name –