Comment ajouter un préfixe au nom de la route Laravel
P粉760675452
P粉760675452 2023-11-09 13:50:35
0
1
683

Mon itinéraire est le suivant :

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

Ma liste d'itinéraires est

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

Existe-t-il un moyen d'ajouter un préfixe à chaque nom de routeadmin. :

  • users.index sera admin.users.index
  • users.store sera admin.users.store

Et ainsi de suite pour chaque itinéraire ressource sans faire ceci :

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


P粉760675452
P粉760675452

répondre à tous(1)
P粉460377540

Surpris, aucun doublon n'a été trouvé, mais vous pouvez simplement utiliser la Router::name() 方法。请注意,我使用 对 URL 前缀执行了相同的操作Router::prefix()méthode avec :

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

Il est important de noter que bien que prefix() 方法适用于 URL 段,因此会插入斜杠,但 name() ne soit qu'un préfixe universel et n'ajoutera aucun type de délimiteur. C'est pourquoi j'ai inclus le point dans le nom.


Si vous préférez, vous pouvez utiliser des arguments $router à la place des façades à l'intérieur des fermetures. Celui que vous préférez n’est qu’une question de préférence personnelle. Par exemple :

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) ;
});
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal