定义自己的路线允许您定义您的应用程序将如何应对一个给定的URL。定义自己的路线在app/Config/路线。php文件使用路由器:connect()方法。
connect()方法接受三个参数:URL你想匹配,你的路线元素的默认值和正则表达式规则帮助路由器匹配元素的URL。
路由定义的基本格式是:
第一个参数是用来告诉路由器你试图控制什么样的URL。URL是一个正常的斜杠分隔的字符串,但也可以包含通配符(*)或路由元素。使用一个通配符告诉路由器,你愿意接受任何额外的参数提供。路线没有*只提供匹配的模板模式。
一旦你指定的URL,您使用connect()的最后两个参数告诉CakePHP如何处理一个请求一旦被匹配。第二个参数是一个关联数组中。数组的键应该路线命名元素的URL,或者默认的元素::控制器,行动,和:插件。数组中的值是默认值的键。让我们来看看一些基本的例子在我们开始使用connect()的第三个参数:
这条路线的路线。php文件与CakePHP分布。这条路线匹配任何URL/页面/和手开始它的显示()行动PagesController();请求/页面/产品将被映射到PagesController->显示(“产品”)。
除了贪婪的明星/**/*也有落后于星语法。使用拖曳双星,将捕获的其余部分URL作为一个参数传递。这是有用的,当你想使用一个参数,包括一个/:
传入的URL/页面/the-example-/-and-proofthe-example将导致一个传递参数——/-and-proof。
在新的2.1版本:双星被添加在2.1。
路由器可以使用第二个参数::connect()来提供任何路由参数组成的路由的默认值:
这个例子展示了如何使用connect()的第二个参数定义缺省参数。如果你建立了一个网站,功能产品为不同类别的客户,你可以考虑创建一个路线。这允许您链接到/政府而不是/页面/显示/5。
请注意
虽然你可以连接替代路线,默认路由将继续工作。这可以创建情况,内容可能最终2url。看到禁用默认路由,禁用默认路由,只提供你定义的url。
路由器的另一个常见用途是定义一个“别名”控制器。假设,而不是访问我们的定期URL/用户/some_action/5,我们希望能够访问/厨师/some_action/5。下面的路线很容易照顾,
这是告诉路由器开始任何url/厨师/控制器应发送给用户。的行动称为取决于价值:操作参数。通过使用路由元素,您可以创建变量路线,接受用户输入或变量。上面的路线也使用贪婪的明星。贪婪的明星表示路由器,这条路线应该接受任何额外的位置参数。这些参数将传递的参数数组。
当生成url,路线也使用。使用数组array('controller' => 'users', 'action' => 'some_action', 5)以上路线是否找到的第一个匹配项。
默认情况下所有的命名和传递参数提取的url匹配贪婪的模板。不过,您可以使用路由器配置,命名参数是如何解析::connectNamed()如果你需要。
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()如果你需要。