【问题标题】:Laravel generate the routes using Route::resource need to add prefix /admin/Laravel 使用 Route::resource 生成路由需要添加前缀 /admin/
【发布时间】:2016-09-07 16:59:57
【问题描述】:

例如,我有一个用于管理页面管理书籍的路由,路由设置如下:

Route::resource('books','Admin\BookController');

它自动生成了一些用于插入/更新/删除等的路由

/books/create
/books/1/edit

问题是,它是管理页面,我希望链接是

/admin/books/create 
/admin/books/1/edit

如何将资源指定为 admin one ?它自动具有 /admin/ 前缀谢谢

更新:

【问题讨论】:

    标签: php laravel url routes admin


    【解决方案1】:

    将您的 route 更改为

    Route::resource('admin/books','Admin\BookController');
    

    【讨论】:

      【解决方案2】:

      如果你需要多个路由的前缀,你应该使用route group:

      Route::group(['prefix' => 'admin'], function()
      {
          Route::resource('books','Admin\BookController');
      });
      

      或者,如果您只需要使用一个控制器,您可以这样做:

      Route::resource('/admin/books','Admin\BookController');
      

      【讨论】:

      • 谢谢,但它显示语法错误,意外')',期待']'
      • 哦,对不起,我忘记了结束]。现已修复。
      • 感谢您的快速修复。如果我去localhost:8000/admin/books 它会显示 Route [books.edit] 未定义。
      • 您可以使用php artisan route:list 命令检查所有已定义的路由。如果路由在列表中,则应检查 Web 服务器配置。
      • 错误提示您正在使用books.edit 路由,但您现在需要在视图中使用admin.books.edit 路由。查看路由列表中的name 列。这些是您应该在应用中使用的路线名称。
      【解决方案3】:

      只是为了添加到 Alexey 的答案中。我也在组中使用命名空间。下面是例子。

      Route::group([
          'prefix'     => 'admin',
          'namespace'  => 'Admin',
          'middleware' => 'admin.routeNeedsPermission:view-admin-management',
      ], function() { 
             Route::resource('books','BookController');
      });
      

      这样你就不需要在你的所有路由中都写 admin 了。

      【讨论】:

        猜你喜欢
        • 2021-02-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-08
        • 2018-11-21
        • 2017-06-09
        • 2017-12-28
        • 2014-09-29
        相关资源
        最近更新 更多