如何将前缀添加到Laravel路线名称

发布于 2025-02-07 06:18:43 字数 5486 浏览 5 评论 0原文

我有这样的路线:

Route::resource('/admin/users', \App\Http\Controllers\AdminUsersController::class);
Route::resource('/admin/posts', \App\Http\Controllers\AdminPostsController::class);
Route::resource('/admin/categories', \App\Http\Controllers\AdminCategoriesController::class);
Route::resource('/admin/media', \App\Http\Controllers\AdminMediasController::class);
Route::resource('/admin/comment/replies', \App\Http\Controllers\CommentRepliesController::class);
Route::resource('/admin/comments', \App\Http\Controllers\PostCommentsController::class) ;

路线列表是否有

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 ............................................................................... 

方法可以将前缀 admin。

  • 一种
  • 我的 Admin.users.store

等每个资源路线又不执行此操作:

Route::resource('/admin/users', \App\Http\Controllers\AdminUsersController::class, ['names'=>['index'=>'admin.users.index']]);

I am having my routes like this:

Route::resource('/admin/users', \App\Http\Controllers\AdminUsersController::class);
Route::resource('/admin/posts', \App\Http\Controllers\AdminPostsController::class);
Route::resource('/admin/categories', \App\Http\Controllers\AdminCategoriesController::class);
Route::resource('/admin/media', \App\Http\Controllers\AdminMediasController::class);
Route::resource('/admin/comment/replies', \App\Http\Controllers\CommentRepliesController::class);
Route::resource('/admin/comments', \App\Http\Controllers\PostCommentsController::class) ;

and 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 prefix admin. to every single route name:

  • users.index would be admin.users.index
  • users.store would be admin.users.store

and so on for every resource route without doing this:

Route::resource('/admin/users', \App\Http\Controllers\AdminUsersController::class, ['names'=>['index'=>'admin.users.index']]);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

葵雨 2025-02-14 06:18:43

惊讶地找不到副本,但是您可以简单地使用 路由器:: name()方法。请注意,我使用 router :: prefix()方法

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) ;
});

重要的是要注意,prefix()方法是用于URL段的,因此插入斜线,name ()只是一个通用前缀,不会添加任何形式的分离器。这就是为什么我在名称中包含了点的原因。


如果愿意,可以使用$ router参数,而不是闭合内的立面。这只是您喜欢的个人喜好问题。例如:

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) ;
});

Surprised not to find a duplicate for this, but you can simply use a route group with the Router::name() method. Note I've done the same with the URL prefix using the Router::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's important to note that while the prefix() method is meant for a URL segment and so inserts the slash, name() is just a generic prefixer and won't add separators of any kind. This is why I included the dot in the name.


If you wish, you can use the $router parameter instead of the facade inside the closure. It is just a matter of personal preference which one you prefer. e.g.:

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) ;
});
彼岸花ソ最美的依靠 2025-02-14 06:18:43
Route::group([
    'prefix' => __('router.product')
], function () {
    Route::get(__('router.products'), [ProductController::class, 'list'])->name('admin.product.list');
    Route::get(__('router.product-create'), [ProductController::class, 'create'])->name('admin.product.create');
    Route::post(__('router.product-create'), [ProductController::class, 'createDo'])->name('admin.product.createDo');
});
Route::group([
    'prefix' => __('router.product')
], function () {
    Route::get(__('router.products'), [ProductController::class, 'list'])->name('admin.product.list');
    Route::get(__('router.product-create'), [ProductController::class, 'create'])->name('admin.product.create');
    Route::post(__('router.product-create'), [ProductController::class, 'createDo'])->name('admin.product.createDo');
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文