How to add prefix to Laravel route name
P粉760675452
P粉760675452 2023-11-09 13:50:35
0
1
558

My route is like this:

Route::resource('/admin/users', AppHttpControllersAdminUsersController::class); Route::resource('/admin/posts', AppHttpControllersAdminPostsController::class); Route::resource('/admin/categories', AppHttpControllersAdminCategoriesController::class); Route::resource('/admin/media', AppHttpControllersAdminMediasController::class); Route::resource('/admin/comment/replies', AppHttpControllersCommentRepliesController::class); Route::resource('/admin/comments', AppHttpControllersPostCommentsController::class) ;

My route list is

GET|HEAD admin/categories .................... categories.index › AdminCategoriesController@index POST admin/categories .................... categories.store › AdminCategoriesController@store GET|HEAD admin/categories/create ........... categories.create › AdminCategoriesController@create GET|HEAD admin/categories/{category} ........... categories.show › AdminCategoriesController@show PUT|PATCH admin/categories/{category} ....... categories.update › AdminCategoriesController@update DELETE admin/categories/{category} ......categories.destroy › AdminCategoriesController@destroy GET|HEAD admin/categories/{category}/edit ...... categories.edit › AdminCategoriesController@edit GET|HEAD admin/comment/replies ................... replies.index › CommentRepliesController@index POST admin/comment/replies ................... replies.store › CommentRepliesController@store GET|HEAD admin/comment/replies/create .......... replies.create › CommentRepliesController@create GET|HEAD admin/comment/replies/{reply} ............. replies.show › CommentRepliesController@show PUT|PATCH admin/comment/replies/{reply} ......... replies.update › CommentRepliesController@update DELETE admin/comment/replies/{reply} ....... replies.destroy › CommentRepliesController@destroy GET|HEAD admin/comment/replies/{reply}/edit......... replies.edit › CommentRepliesController@edit GET|HEAD admin/comments ........................... comments.index › PostCommentsController@index POST admin/comments ........................... comments.store › PostCommentsController@store GET|HEAD admin/comments/create .................. comments.create › PostCommentsController@create GET|HEAD admin/comments/{comment} ................... comments.show › PostCommentsController@show PUT|PATCH admin/comments/{comment} ............... comments.update › PostCommentsController@update DELETE admin/comments/{comment} ............. comments.destroy › PostCommentsController@destroy GET|HEAD admin/comments/{comment}/edit .............. comments.edit › PostCommentsController@edit GET|HEAD admin/media .................................. media.index › AdminMediasController@index POST admin/media .................................. media.store › AdminMediasController@store GET|HEAD admin/media/create ......................... media.create › AdminMediasController@create GET|HEAD admin/media/{medium} ........................... media.show › AdminMediasController@show PUT|PATCH admin/media/{medium} ....................... media.update › AdminMediasController@update DELETE admin/media/{medium} ..................... media.destroy › AdminMediasController@destroy GET|HEAD admin/media/{medium}/edit ...................... media.edit › AdminMediasController@edit GET|HEAD admin/posts ................................... posts.index › AdminPostsController@index POST admin/posts ................................... posts.store › AdminPostsController@store GET|HEAD admin/posts/create .......................... posts.create › AdminPostsController@create GET|HEAD admin/posts/{post} .............................. posts.show › AdminPostsController@show PUT|PATCH admin/posts/{post} .......................... posts.update › AdminPostsController@update DELETE admin/posts/{post} ........................ posts.destroy › AdminPostsController@destroy GET|HEAD admin/posts/{post}/edit ......................... posts.edit › AdminPostsController@edit GET|HEAD admin/users ................................... users.index › AdminUsersController@index POST admin/users ................................... users.store › AdminUsersController@store GET|HEAD admin/users/create .......................... users.create › AdminUsersController@create GET|HEAD admin/users/{user} .............................. users.show › AdminUsersController@show PUT|PATCH admin/users/{user} .......................... users.update › AdminUsersController@update DELETE admin/users/{user} ........................ users.destroy › AdminUsersController@destroy GET|HEAD admin/users/{user}/edit ......................... users.edit › AdminUsersController@edit GET|HEAD api/user ...............................................................................

Is there a way to add a prefix to each route nameadmin.:

  • users.index will be admin.users.index
  • users.store will be admin.users.store

And so on for each resource route without doing this:

Route::resource('/admin/users', AppHttpControllersAdminUsersController::class, ['names'=>['index'=>'admin.users.index']]);


P粉760675452
P粉760675452

reply all (1)
P粉460377540

Surprised no duplicates were found, but you can simply use themethod withRouter::name(). Note that I did the same thing with the URL prefix usingRouter::prefix()method:

use App\Http\Controllers as C; Route::name("admin.")->prefix("admin")->group(function ($router) { Route::resource('users', C\AdminUsersController::class); Route::resource('posts', C\AdminPostsController::class); Route::resource('categories', C\AdminCategoriesController::class); Route::resource('media', C\AdminMediasController::class); Route::resource('comment/replies', C\CommentRepliesController::class); Route::resource('comments', C\PostCommentsController::class) ; });

It is important to note that while theprefix()method works on URL segments and therefore inserts slashes,name()is just a generic prefix and does not add any type separator. That's why I included the dot in the name.


If you prefer, you can use the$routerparameter instead of the facade inside the closure. Which one you prefer is just a matter of personal preference. For example:

use App\Http\Controllers as C; Route::name("admin.")->prefix("admin")->group(function ($router) { $router->resource('users', C\AdminUsersController::class); $router->resource('posts', C\AdminPostsController::class); $router->resource('categories', C\AdminCategoriesController::class); $router->resource('media', C\AdminMediasController::class); $router->resource('comment/replies', C\CommentRepliesController::class); $router->resource('comments', C\PostCommentsController::class) ; });
    Latest Downloads
    More>
    Web Effects
    Website Source Code
    Website Materials
    Front End Template
    About us Disclaimer Sitemap
    php.cn:Public welfare online PHP training,Help PHP learners grow quickly!