Php 带有子页面的Kohana分层路由
我想在Kohana 3.0.9中设置某种层次路由。路由应支持页面和子页面,这些页面和子页面可能如下所示: 调用的URL:Php 带有子页面的Kohana分层路由,php,frameworks,routing,kohana,Php,Frameworks,Routing,Kohana,我想在Kohana 3.0.9中设置某种层次路由。路由应支持页面和子页面,这些页面和子页面可能如下所示: 调用的URL:http://example.com/company/contact/ 可能的路线:(/(/) 上述路由的问题在于,它只支持具有两个级别的层次结构。如果站点需要能够处理像http://example.com/company/contact/sub,我必须改变路线 另外,我想要一个单页控制器来处理请求。例如,它可以接受company/contact/sub作为字符串参数。我知道键
http://example.com/company/contact/
可能的路线:(/(/)
上述路由的问题在于,它只支持具有两个级别的层次结构。如果站点需要能够处理像http://example.com/company/contact/sub
,我必须改变路线
另外,我想要一个单页控制器来处理请求。例如,它可以接受company/contact/sub
作为字符串参数。我知道
键,我不打算使用它
有没有办法使路由与无限嵌套页面“兼容”
提前感谢您的回答。如果您查看路由部分,您可以创建自定义正则表达式模式。 (请看这里) 默认情况下,路由“参数”会删除标点符号 您可以设置正则表达式以接受“/” 然后,您可以获取最后一个参数并使用 $pieces=爆炸(“/”,$pizza) 例如: 这应该会让你满意的
$page_array = array ( [1] => 'contact',
[2] => 'subpage',
[3] => 'subsubpage')
看起来不错,但是正则表达式不起作用。我将其更改为
(.*)
,但不幸的是,操作被中断page_Level
将包含@daniel的bonjour/sub/doublesub/index
,您可以尝试(.*)或将操作硬编码到路由到((//my_ACTION)),然后在操作参数中将“ACTION”=>“my_ACTION”设置为硬编码。“我不知道你有多少不同的动作。@丹尼尔将你的路线改为跟随。路由::set('multilevel','(/)',array('page_levels'=>'.*)->默认值(array('controller'=>'welcome','action'=>'index',);不幸的是,仍然不起作用。我将尝试通过正则表达式排除该操作–可能使用类似于(.*)/(index | edit)
。重要提示:我们都忘记了正则表达式仅用于检查它是否匹配url字符串–它永远不会修改或切断url的部分。我想我得破解科哈纳的消息来源。
$page_levels = Request::instance()->param('page_levels');
$page_array = explode("/",$page_levels);
$page_array = array ( [1] => 'contact',
[2] => 'subpage',
[3] => 'subsubpage')