【问题标题】:Cakephp 2.x to 3 migration, where does the folder app/Lib/Routing with the custom routeClass go to?Cakephp 2.x 到 3 的迁移,带有自定义 routeClass 的文件夹 app/Lib/Routing 到哪里去了?
【发布时间】:2015-05-11 21:13:49
【问题描述】:

如何像在 Cakephp 2.x 中一样设置自定义 routeClass? Route 扩展位于 Cakephp 2.x 中的 app/Lib/Routing 目录中。我必须把它放在 Cakephp 3 的什么地方?

【问题讨论】:

    标签: routes cakephp-3.0


    【解决方案1】:

    试试这个,创建这个文件夹:/Lib/Routing/Route 并使用:

    Router::defaultRouteClass('DashedRoute');
    

    http://book.cakephp.org/3.0/en/development/routing.html#custom-route-classes

    如果你想要一些例子,看看 cakephp 的内心深处

    供应商\cakephp\cakephp\src\Routing\Route

    【讨论】:

      【解决方案2】:

      在 3.x 中不要将 Routing 放在 Lib 中,只需将其放在插件或应用程序的 src 中即可。

      2.x - https://github.com/josegonzalez/cakephp-dynamic-route

      App::uses('FancyRoute', 'DynamicRoute.Lib/Routing/Route');
      FancyRoute::connect();
      

      3.x

      $routes->connect('/stuff/:slug',
      ['controller' => 'SomeThings', 'action' => 'view'], ['routeClass' =>
      'SomeThings.FancyRoute']);
      

      然后由自定义路由中的匹配和解析方法决定。目前,我更喜欢使用正则表达式来定义传递的 slug 的匹配项

      【讨论】:

        猜你喜欢
        • 2021-12-31
        • 2012-03-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-02
        • 1970-01-01
        • 1970-01-01
        • 2020-11-24
        相关资源
        最近更新 更多