Courses

Laravel 9 For Beginners: Your First Project

Route Parameters and Route Model Binding

Previous: Second Model for Posts, GET Parameters and Eloquent "Tricks"
avatar

Route::get('/', function () { return redirect(app()->getLocale()); })->name('main'); Route::prefix('{locale}')->where(['locale' => '[a-zA-Z]{2}'])->middleware('setlocale')->group(function () { Route::middleware(['auth','verified'])->group(function() { Route::resource('users', Admin\UsersController::class ); }); });

This is my routes.But I'm getting "Missing required parameter for route, missing parameter {user}". I didn't get this error before adding multilanguage. How can I fix that error. None of my show functions are working.

avatar

What is the URL you're calling? If should be something like /en/users/1 to get a user, because you have the required "locale" now.

avatar

I'm calling like this: href="{{ route('admin.users.show', ['user' => $u ]) }}"

avatar
  1. First step: Show link in users table: href="{{ route('admin.users.show', ['user' => $u ]) }}"

  2. Routes: Route::get('/', function () { return redirect(app()->getLocale()); })->name('main'); Route::prefix('{locale}')->where(['locale' => '[a-zA-Z]{2}'])->middleware('setlocale')->group(function () { Route::middleware('role:1')->prefix('admin')->name('admin.')->group(function () { Route::resource('users', Admin\UsersController::class ); }); });

  3. My Controller: public function show($locale,User $user) { return view('admin.users.show', compact('user')); }

  4. View file (admin.users.show): Working fine, but If I add it returns error. "Missing required parameter for [Route: admin.users.show] [URI: {locale}/admin/users/{user}] [Missing parameter: user].

I face same problem for every show functions. Can you help to solve this problem?

avatar

When I remove this code: x-dropdown-link :href="route(, ['locale' => $locale])" :active="app()->getLocale() == $locale" /x-dropdown-link

It's working fine. In show pages.

avatar

Well, you answered your question yourself, the error is in the dropdown link where you put only the locale as a parameter and nothing else. The route is empty as I see, or maybe it was badly formatted, but if you want to redirect to the same route with locale you need to pass user, too.

avatar
You can use Markdown
avatar
You can use Markdown