路由的连接讲解

定义自己的路线允许您定义您的应用程序将如何应对一个给定的URL。定义自己的路线在app/Config/路线。php文件使用路由器:connect()方法。


connect()方法接受三个参数:URL你想匹配,你的路线元素的默认值和正则表达式规则帮助路由器匹配元素的URL。


路由定义的基本格式是:

Router::connect(
    'URL',
    array('default' => 'defaultValue'),
    array('option' => 'matchingRegex')
);



第一个参数是用来告诉路由器你试图控制什么样的URL。URL是一个正常的斜杠分隔的字符串,但也可以包含通配符(*)或路由元素。使用一个通配符告诉路由器,你愿意接受任何额外的参数提供。路线没有*只提供匹配的模板模式。


一旦你指定的URL,您使用connect()的最后两个参数告诉CakePHP如何处理一个请求一旦被匹配。第二个参数是一个关联数组中。数组的键应该路线命名元素的URL,或者默认的元素::控制器,行动,和:插件。数组中的值是默认值的键。让我们来看看一些基本的例子在我们开始使用connect()的第三个参数:


Router::connect(
    '/pages/*',
    array('controller' => 'pages', 'action' => 'display')
);




这条路线的路线。php文件与CakePHP分布。这条路线匹配任何URL/页面/和手开始它的显示()行动PagesController();请求/页面/产品将被映射到PagesController->显示(“产品”)。


除了贪婪的明星/**/*也有落后于星语法。使用拖曳双星,将捕获的其余部分URL作为一个参数传递。这是有用的,当你想使用一个参数,包括一个/:


Router::connect(
    '/pages/**',
    array('controller' => 'pages', 'action' => 'show')
);




传入的URL/页面/the-example-/-and-proofthe-example将导致一个传递参数——/-and-proof。


在新的2.1版本:双星被添加在2.1。


路由器可以使用第二个参数::connect()来提供任何路由参数组成的路由的默认值:


Router::connect(
    '/government',
    array('controller' => 'pages', 'action' => 'display', 5)
);




这个例子展示了如何使用connect()的第二个参数定义缺省参数。如果你建立了一个网站,功能产品为不同类别的客户,你可以考虑创建一个路线。这允许您链接到/政府而不是/页面/显示/5。


请注意


虽然你可以连接替代路线,默认路由将继续工作。这可以创建情况,内容可能最终2url。看到禁用默认路由,禁用默认路由,只提供你定义的url。


路由器的另一个常见用途是定义一个“别名”控制器。假设,而不是访问我们的定期URL/用户/some_action/5,我们希望能够访问/厨师/some_action/5。下面的路线很容易照顾,

Router::connect(
    '/cooks/:action/*', array('controller' => 'users')
);




这是告诉路由器开始任何url/厨师/控制器应发送给用户。的行动称为取决于价值:操作参数。通过使用路由元素,您可以创建变量路线,接受用户输入或变量。上面的路线也使用贪婪的明星。贪婪的明星表示路由器,这条路线应该接受任何额外的位置参数。这些参数将传递的参数数组。


当生成url,路线也使用。使用数组array('controller' => 'users', 'action' => 'some_action', 5)以上路线是否找到的第一个匹配项。


默认情况下所有的命名和传递参数提取的url匹配贪婪的模板。不过,您可以使用路由器配置,命名参数是如何解析::connectNamed()如果你需要。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值