Maison  >  Questions et réponses  >  le corps du texte

Comment ajouter un préfixe au nom de la route Laravel

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

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

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


P粉760675452P粉760675452368 Il y a quelques jours673

répondre à tous(1)je répondrai

  • P粉460377540

    P粉4603775402023-11-10 10:08:57

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

    répondre
    0
  • Annulerrépondre