首页 / PHP / CakePHP中的可变前缀路由
CakePHP中的可变前缀路由
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了CakePHP中的可变前缀路由,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1578字,纯文字阅读大概需要3分钟。
内容图文
![CakePHP中的可变前缀路由](/upload/InfoBanner/zyjiaocheng/693/51b3679e0f644a0dafc40de730ad7c6b.jpg)
我正在CakePHP中创建一个应用程序,这需要我在一个CakePHP安装中运行“多个”应用程序.像我有n个控制器,它们对所有应用程序的行为都一样,但是它们仅在我调用数据库时有所不同-无论如何,我需要创建一个行为如下的路由:
/app1/controller/action/a/b/c
/app2/controller/action/a/b/c
(其中app1和app2是可以更改为任何内容的字母数字字符串)
那将被路由到类似:
/controller/action/app1/a/b/c
(或与app2相同,依此类推)
路由的路由也可能只是/ controller / action / a / b / c,但我需要一种方法来访问控制器内URL的app1 / app2部分(以便在控制器内进行进一步处理). CakePHP有办法做到这一点吗?谢谢.
稍微相关的问题:完成上述操作后,是否有办法设置“默认”应用程序名称(例如,当我尝试访问/ controller / action / a / b / c时,它将自动被路由为等效于键入/全局/控制器/动作/ A / b / C 2)
谢谢!
有效地:我想要的只是使用路由(或其他可以执行此操作的CakePHP“方法”)来处理/ foobar / controller / action / the / rest之类的URL到/ controller / action / the / rest并传递“ foobar控制器”. “ Foobar”是任何字母数字字符串.
解决方法:
在app / Config / routes.php中添加:
Router::connect(
'/:app/:controller/:action/*',
array(),
array( 'pass' => array( 'app' ))
);
这会将app的值作为第一个参数传递给控制器??中的操作.因此,在您的控制器中,您将执行以下操作:
class FoosController Extends AppController {
public function view_something($app, $a, $b, $c) {
// ...
}
}
当您请求/ myApp1 / foos / view_something / 1/2/3时,$app的值为’myApp1′,$a的值为1,依此类推.
要连接其他路线,可以在上面添加以下内容:
Router::connect(
'/pages/:action/*',
array( 'app' => 'global', 'controller' => 'pages' ),
array( 'pass' => array( 'app' )) // to make app 1st arg in controller
);
内容总结
以上是互联网集市为您收集整理的CakePHP中的可变前缀路由全部内容,希望文章能够帮你解决CakePHP中的可变前缀路由所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。