为域/参数配置CakePHP 2.0路由(无控制器名称)
我希望能够在CakePHP 2.0中路由如下内容:为域/参数配置CakePHP 2.0路由(无控制器名称),cakephp,routes,cakephp-2.0,Cakephp,Routes,Cakephp 2.0,我希望能够在CakePHP 2.0中路由如下内容: domain.com/london domain.com/milton keynes 到特定的控制器和操作 应用程序有多个控制器,因此仅当提供的参数与控制器名称不匹配时才应使用此路由。 通过在config/routes.php Router::connect( '/:location', array('controller' => 'articles', 'action' => 'testing'), array('p
domain.com/london
domain.com/milton keynes
到特定的控制器和操作
应用程序有多个控制器,因此仅当提供的参数与控制器名称不匹配时才应使用此路由。
通过在config/routes.php
Router::connect(
'/:location',
array('controller' => 'articles', 'action' => 'testing'),
array('pass' => array('location'), 'location' => '[a-z ]+')
);
仅当我注释掉config/routes.php
中的require
行时,将此代码与CakePHP 2.0一起使用才有效,但随后我松开了默认路由,因此指向任何其他控制器的URL会被捕获
如何实现所需的路由?据我所知,这在Cake 1.3中也不适用,因为您的
[a-z]+
正则表达式也与简单的/controller\u name路由匹配;路由器无法区分两者,因此总是路由到它首先遇到的路由器
但是,您可以创建一个自定义管线类来实现这一点。Mark Story(蛋糕开发者之一)不久前写了一篇关于它的优秀文章,它是针对蛋糕1.3的,但是你可以很容易地将这个原则应用到2.0(我知道,因为我在我的2.0应用程序中使用它)。你可以找到帖子。据我所知,这在Cake 1.3中也不应该起作用,因为你的
[a-z]+
正则表达式也与简单的/controller\u name路由匹配;路由器无法区分两者,因此总是路由到它首先遇到的路由器
但是,您可以创建一个自定义管线类来实现这一点。Mark Story(蛋糕开发者之一)不久前写了一篇关于它的优秀文章,它是针对蛋糕1.3的,但是你可以很容易地将这个原则应用到2.0(我知道,因为我在我的2.0应用程序中使用它)。你可以找到这篇文章。这可能无法回答上面提出的具体问题,但它是相关的,这一页出现在搜索结果中,我的目标是让找到它的人(我想包括未来的我)有一段时间不必研究我刚刚研究的内容 我需要为不同的域添加带有参数的路由。例如,
example.com
应该像往常一样,而example.org/some_page
应该直接路由到特定的控制器和操作。因此,我将以下内容添加到我的Config/routes.php
:
if ( CakeRequest::host()=='example.org' ) {
Router::connect('/:my_variable',
array(
'controller'=>'my_controller',
'action'=>'my_action'
),
array(
'my_variable'=>'[a-zA-Z-0-9 ]+',
'pass'=>array('my_variable')
)
);
}
这可能无法回答上面提出的具体问题,但它是相关的,这个页面出现在搜索结果中,我的目标是让找到它的人(包括我猜的未来我)有一段时间不必研究我刚刚研究的内容 我需要为不同的域添加带有参数的路由。例如,
example.com
应该像往常一样,而example.org/some_page
应该直接路由到特定的控制器和操作。因此,我将以下内容添加到我的Config/routes.php
:
if ( CakeRequest::host()=='example.org' ) {
Router::connect('/:my_variable',
array(
'controller'=>'my_controller',
'action'=>'my_action'
),
array(
'my_variable'=>'[a-zA-Z-0-9 ]+',
'pass'=>array('my_variable')
)
);
}
谢谢-是一个查看提供的URL的自定义路由类,查询数据库以查看其是否存在,如果存在-发送给控制器谢谢-是一个查看提供的URL的自定义路由类,查询数据库以查看其是否存在,如果存在-发送给控制器