Laravel : Avoir une route avec parametre dans Routegroup
Salut,
Je veux acceder à : http://localhost/logiluxexe/public/en/games_giveaways/1 Mais cela ne fonctionne pas.
Routes :
Route::group(['middleware' => ['setlocale'],'prefix' => '{locale}', 'where' => ['locale' => '[a-zA-Z]{2}']], function() {
Auth::routes();
Route::get('/games_giveaways/{id}', [GameGiveawayController::class, 'show'])->name('games_giveaways.show');
});
Middleware :
public function handle(Request $request, Closure $next) {
if(session()->has('locale')){
app()->setLocale(session()->get('locale'));
//Carbon::setLocale(session()->get('locale'));
} elseif ($request->segment(1)) {
app()->setLocale($request->segment(1));
} else {
app()->setLocale('en');
}
return $next($request);
}
Error :
Missing required parameter for [Route: games_giveaways.show] [URI: {locale}/games_giveaways/{id}]
[Missing parameter: id]. (View: C:\wamp64\www\logiluxe\resources\views\layouts\app.blade.php)
C'est comme si je ne pouvais pas avoir de route dans mon grouproute. Une idée ?
Salut,
Est-ce que dans ta fonction show le parametre s'appelle bien id ?
Sinon, tu peux tenter d'écrire ta route plutôt comme ça pour voir:
Route::get('/games_giveaways/{id}', 'GameGiveawayController@show')->name('games_giveaways.show');
Je suis sous laravel 8
J'ai pas l'impression que le code fonctionne sur cette version
Route::get('/games_giveaways/{id}', 'GameGiveawayController@show')->name('games_giveaways.show');
Oui dans la fonction show du controller, le parametre s'appel $id.
Salut,
As-tu résolu ton problème ? Sinon j'ai pensé à un truc:
Essaye de rentre ton paraetre optionnel juste pour pouvoir acceder à ton contoller
Route::group(['middleware' => ['setlocale'],'prefix' => '{locale}', 'where' => ['locale' => '[a-zA-Z]{2}']], function() {
Auth::routes();
Route::get('/games_giveaways/{id?}', [GameGiveawayController::class, 'show'])->name('games_giveaways.show');
});
Et tu fais un dd($id);
dans ton controller pour voir ce qu'il dit
Vous ne pouvez pas répondre à ce sujet.