8797 sujets

Développement web côté serveur, CMS

Bonjour à toutes et à tous,

Je développes un site avec le MVC Laravel et j'aimerais faire de la recherche de post dessus donc je me susi dit que la méthode de filtre serait pas mal adapté, donc j'ai cherché filter sur la doc Laravel (action filter - Laravel), et je n'ai pas trouvé comment faire pour récupérer une variable en method GET ?

Voici mon form:
<form method="GET" action="public/index.php/post/search">
                    <input class="searchrechercher" type="text" autocomplete="off" name="q" autofocus="" />
            </form>


Et voici mon controller post/search/:
	public function action_search()
	{

		

		// $per_page = 15;
		// $posts = Post::order_by('id','desc')->paginate($per_page);
		// Section::inject('title','Search');

		// return View::make('post.search')->with('posts',$posts);
	}


Voila voila, Je galère beaucoup mais vous pouvez vous rendre compte que j'ai quand même bien travaillé Srchme.com
Modérateur
Ca lu,

Je ne comprends pas bien ta demande d'aide à CakePhp alors que tu bosses sur Laravel ?

Avec Cake, ça se passe comme ça (nouvel objet request)

function monAction(){
	if($this->request->is('get') && !empty($this->request->data)){
		//etc.
	}
}

Modifié par niuxe (17 Oct 2012 - 21:10)
Ca lu,

Et bien en fait j'aimerais savoir comment faire une recherche avec Laravel et grâce au Views Smiley cligne

Merci quand même Smiley cligne
Modifié par cl9m9n7 (17 Oct 2012 - 21:11)
Modérateur
Je ne connais pas du tout Laravel. Je suis allé sur la doc et fait une petite recherche :
Ne connaissant pas du tout les méthodes, est ce que cela peut t'aiguiller ?input

Schme, c'est quoi comme site ? Je n'ai pas bien compris la thématique
Je vais voir mais pourrais tu m'écrire en cakephp comment s'écris une recherche en utilisant les mots clés dans l'url (GET) s'il te plais, je vais essayer de le traduire en Laravel Smiley biggrin

En fait Srchme.com (clic sur le lien cartel) c'est une sorte de moteur de recherche qui permet de recenser plein de sites différents et qui ont un point en commun, on peu faire une recherche dessus et chaque personne peut rajouter n'importe quel site (sauf si il y est déjà) et le commenter...(je vais également essayer de mettre un system de popularité en incrementant un chiffre à chaque recherche sur le site en question, plus le chiffre est imortant plus le site sera haut dans le moteur de recherche Srchme.com)

Si tu veux tu peux t'inscrire Smiley biggrin , c'est moi qui l'ai fait Smiley cligne

Merci beaucoup Smiley langue
Modérateur
cl9m9n7 a écrit :
Je vais voir mais pourrais tu m'écrire en cakephp comment s'écris une recherche en utilisant les mots clés dans l'url (GET) s'il te plais, je vais essayer de le traduire en Laravel Smiley biggrin



Ca revient à ce que j'ai écrit au dessus :

function search(){
	if($this->request->is('get') && !empty($this->request->data)){
		//récupération de la valeur du champ
		$recherche = $this->request->data['models']['q'];
		
		//paramètre pour la requete
		$param = array(
			'fields' => array('table.q','table.champ','table.unAutreeChamp','table.etc'),
			'conditions'=>array('table.q LIKE' => '%'.$recherche.'%')
		);
		//requete
		$data['maRechercheDeLaMortKiTue'] = $this->MonModel->find('all',$param);
		
		//envoi à la vue
		$this->set($data);
	}
}

*code fait de tête, je peux m'être trompé.
Modifié par niuxe (17 Oct 2012 - 22:51)
C'est pas mal ce que tu m'as mis mais Smiley biggrin ,

Je ne sais pas pourquoi tu me fais utiliser les Models (Monmodel), et dans la View j'ai juste à mettre un foreach($data) ?

Je ne sais pas sur la View comment faire ? Smiley langue
Modérateur
Dans les vues de Cake, je t'invite à faire ceci :

<?php debug($maRechercheDeLaMortKiTue); ?>


Je suis sûr que sur Laravel, ça se passe totalement différemment.
;)
Modifié par niuxe (18 Oct 2012 - 13:38)
Voila voila mon site fonctionne ! Smiley biggrin

Post controller
	public function action_search()
	{

		$q = Input::get('q');

		$results = Post::where('title', 'like', "%$q%")
		    ->or_where('content', 'like', "%$q%")
		    ->or_where('keywords', 'like', "%$q%")->get();

		Section::inject('title','Search');

		return View::make('post.search')->with('results',$results);

		// $per_page = 14;
		// $posts = Post::order_by('id','desc')->paginate($per_page);
		
	}


View search
@foreach($results as $r)


Merci à tous !!!