Вы должны попробовать перейти в браузере на admin/roles/1
вместо admin/roles/show/1
.Маршрут, который вы пробовали, не существует, поэтому вы правильно получаете ошибку 404.
Поскольку страница создания и индексации работает нормально, но не показывает, я думаю, что с привязками маршрута что-то не так.
Поскольку маршруты в команде route:list
показывают admin/roles/{}
, мне кажется, что laravel не смог выяснить привязки.
Моя лучшая догадка для этого - проверить ядро http.У вас должно быть промежуточное программное обеспечение \Illuminate\Routing\Middleware\SubstituteBindings::class
либо в массиве $middleware
, либо внутри группы web
в массиве $middlewareGroups
.Я предлагаю поместить его в группу промежуточного программного обеспечения web
.
Например:
protected $middlewareGroups = [
//
'web' => [
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
//
];
Еще одно предложение:
Попробуйте определить маршруты по отдельности вместо использования Route::resource()
Route::get('admin/roles', 'RoleController@index');
Route::get('admin/roles/create', 'RoleController@create');
Route::patch('admin/roles/{role}', 'RoleController@update');
Route::get('admin/roles/{role}', 'RoleController@show');
Route::delete('admin/roles/{role}', 'RoleController@delete');
Route::get('admin/roles/{role}/edit', 'RoleController@edit');
Обратите внимание, что вам может понадобиться добавить ->name('some-name')
, чтобы исправить имена