Bonjour,
Voila je rencontre un petit problème avec mon code.
Je cherche a récupérer le text d'un formulaire pour ensuite faire une recherche avec
La vue :
<form action="{{action('MangasController@search')}}" method="post">
<input type="hidden" name="_token" value="{{csrf_token()}}" />
<input type="hidden" name="_method" value="put" />
<input required="required" class="form-control" placeholder="Trouver un manga..." name="search" type="text">
<button type="submit" class="btn btn-primary">
OK
</button>
</form>
Le controler :
public function search(Request $request)
{
var_dump($request);die;
}
La route
Route::get('mangas/{search}/search', [
'as' => 'mangas.search',
'uses' => 'MangasController@search'
]);
Route::resource('mangas', 'MangasController');
Cependant, quand je tape un texte, j'obtient ca dans l'url
public/mangas?_token=vHDdkBOty3KwyfqJfzNyWktFx7Edq0ACSqRLcfBY&_method=put&search=ddd
Merci d'avance pour vos réponses ^^
Bonsoir.
Je pense que ta principale erreur se situe dans la définition de ta route, en effet dans celle-ci tu indiques qu'un paramètre search doit être présent dans l'url (mangas/{search}/search) sauf que ce n'est pas le cas lors de la construction de ton formulaire étant donné que celui-ci ne se situe pas dans la vue dédiée pour cette action, notamment pour la méthode GET.
Bonsoir,
A priori il y a plusieurs incohérence dans ton code :
Le formulairePourquoi ne aps indiquer de route ?
Pourquoi indiquer une méthode put ?
A la limite il peux passer comme sa mais là il n'est pas cohérent avec route.
Les routesForcément elles correspodnent à pas grand chose ..
Je te propsoe :
<form action="{{ route('mangas.search') }}" method="post">
<input type="hidden" name="_token" value="{{ csrf_token() }}" />
<input required="required" class="form-control" placeholder="Trouver un manga..." name="search" type="text">
<button type="submit" class="btn btn-primary">OK</button>
</form>
public function search(Request $request)
{
dd($request);
}
Route::post('mangas/search', 'MangasController@search')->name('mangas.search');
Là ca devrait fonctionner correctement ! :)
Bonne soirée.