Как добавить префикс «admin» к маршрутам в Laravel? - PullRequest
0 голосов
/ 27 сентября 2019

Я недавно установил laravel 6 для проекта.

к сожалению, маршруты не работают должным образом.

например, я веду пользователя на страницу с этим маршрутом ..

{{ route('user.edit', ['id' => $user->id]) }}.

Он должен идти к admin/user/{user}/edit.

Но он идет по неизвестному маршруту, как это:

/admin/admin/user//edit?id=1 

мой маршрут:

Route::group(['namespace' => 'Admin', 'middleware' => ['auth', 'IsVerified'], 'prefix' => 'admin'], function () {
    route::resource('/user', 'UserController');
});

Ответы [ 2 ]

3 голосов
/ 27 сентября 2019

Ваша привязка модели маршрута неверна, измените href на этот

{{ route('user.edit', ['user' => $user]) }}

Результат:

/admin/user/1/edit

Вызов Route::resource для модели возвращает этот URL для редактирования маршрута

+--------+-----------+----------------------------+------------------+------------------------------------------------------------------------+-------------------------------------------------+
| Domain | Method    | URI                        | Name             | Action                                                                 | Middleware                                      |
+--------+-----------+----------------------------+------------------+------------------------------------------------------------------------+-------------------------------------------------+
|        | GET|HEAD  | admin/user/{user}/edit     | user.edit        | App\Http\Controllers\Admin\UserController@edit                         | web,auth,IsVerified                             |

Обратите внимание, что для привязки используется модель user, а затем идентификатор автоматически выбирается функцией getRouteKeyName, которая возвращает id по умолчанию

0 голосов
/ 27 сентября 2019
  1. Заполнителем по умолчанию для ресурса является модель 'user', а не 'id'

{{ route('user.edit', ['id' => $user->id]) }}

станет:

{{ route('user.edit', $user) }}

Двойная косая черта в вашем маршруте вызвана ненужной косой чертой в

route::resource('/user', 'UserController');

, которая может быть просто:

route::resource('user', 'UserController');

Что касается двойного «admin», возможно, оно выводится в вашем представлении, так как ваше пространство имен и группировка выглядят правильно.
...