Tencent / Biny

Biny is a tiny, high-performance PHP framework for web applications
BSD 3-Clause "New" or "Revised" License
1.69k stars 259 forks source link

请问大神,如何将路由的层数扩展到三层。 #45

Closed Kavf closed 6 years ago

Kavf commented 6 years ago

默认biny的的路由只有两层 当访问https://biny.com/article/add时 实际访问的是/app/controller/article/addAction.php文件下的action_add()方法 我想在路由上面多加一层以区分前台后台,但路由貌似不支持: 当访问 https://biny.com/admin/article/add时会提示找不到action_article()方法 能不能有什么办法可以访问到/app/controller/admin/article/addAction.php这个文件下的action_add()方法,并且同时支持两层路由的访问

billge1205 commented 6 years ago

可以通过 /config/config.php 中routeRule 配置有规则的三层路由 例如: 'admin/<method:[\w_]+>/<action:[\w_]+>' => '<method>/admin_<action>', 那 /admin/article/add 就会自动找到 articleAction.php 中的 action_admin_add() 方法了 具体配置方法可以参考 http://www.billge.cc/#router-custom

billge1205 commented 6 years ago

'admin/<method:[\w_]+>/<action:[\w_]+>' => '<method>Admin/<action>' 这样可能对环境隔离更合理些 admin/article/add => articleAdminAction.php 中的 action_add() 方法

Kavf commented 6 years ago

谢谢,按您的方法已经解决了 自定义路由改成这样了 'adm/<method:[\w_]+>/<action:[\w_]+>' => 'adm<method>/<action>' 2017-11-14 00-15-43 2017-11-14 00-13-56

如果文件名严格按照驼峰命名的话,第二层路由首字母需要大写,这样也好,不容易让人猜到 ==。