【发布时间】:2015-05-11 21:13:49
【问题描述】:
如何像在 Cakephp 2.x 中一样设置自定义 routeClass? Route 扩展位于 Cakephp 2.x 中的 app/Lib/Routing 目录中。我必须把它放在 Cakephp 3 的什么地方?
【问题讨论】:
标签: routes cakephp-3.0
如何像在 Cakephp 2.x 中一样设置自定义 routeClass? Route 扩展位于 Cakephp 2.x 中的 app/Lib/Routing 目录中。我必须把它放在 Cakephp 3 的什么地方?
【问题讨论】:
标签: routes cakephp-3.0
试试这个,创建这个文件夹:/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
【讨论】:
在 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 的匹配项
【讨论】: