【微擎】URL路由及创建

一、公众号模块方法

// 前台方法
doMobileXXX --> doMobileIndex

// 后台方法
doWebXXX --> doWebUsers

二、模块URL

  1. 前台(app端)
// 默认
http://www.yourwebsite.com/app/index.php?i=2&c=entry&eid=50
// 自定义
http://www.yourwebsite.com/app/index.php?i=2&c=entry&do=index&m=module_name
// 以上两种访问方式等价
  1. 后台(web端)
// 默认
http://www.yourwebsite.com/web/index.php?c=site&a=entry&eid=51
// 自定义
http://www.yourwebsite.com/web/index.php?c=site&a=entry&do=user&m=module_name
// 以上两种访问方式等价

上面URL中出现的eid在数据表ims_modules_bindings中的字段eid中可获得,这些数据会在安装微擎模块的时候自动插入到该表当中。

三、URL路由

微擎系统的路由参数: cado

获取对应的路由三个参数:$controller$action$do

(一)地址URL地址路由

当传入的URL请求中包含一个名为 cado(可选) 的 GET参数,它即被视为一个路由,例如:

1. http://www.yourwebsite.com/web/index.php?c=platform&a=menu&

上面url会路由至 /web/source/platform/menu.ctrl.php 文件中

2. http://www.yourwebsite.com/app/index.php?c=mc&a=home&

上面url会路由至 /app/source/mc/home.ctrl.php 文件中

(二)模块URL地址路由

1、web端

当传入的 c 值为 “site”, a 值为 “entry”时则是一个模块路由,例如:

http://www.yourwebsite.com/web/index.php?c=site&a=entry&do=user&m=module_name

上面url会路由至 /addons/module_name/site.php 文件中的 doWebUser() 方法。

2、app端
  • 当传入的c 值为 “entry”时则是一个模块路由;

  • 如果a值为空,默认进入模块的site.php

  • 如果a值不为空(a的有效值有:aliappbaiduappphoneappsitetoutiaoappwebappwxappxzapp),则进入对应的模块php文件,例如:

1. http://www.yourwebsite.com/app/index.php?i=2&c=entry&do=index&m=module_name

上面url会路由至 /addons/module_name/site.php 文件中的 doMobileIndex() 方法

2. http://www.yourwebsite.com/app/index.php?i=2&c=entry&a=wxapp&do=list&m=module_name

上面url会路由至 /addons/module_name/wxapp.php 文件中的 doPageList() 方法

四、创建前后台路由方法

1、url() - 创建一个URL
url($segment, $params = array(), $noredirect = false)

路由的表达式以斜杠“/”的方式组织,每个以斜杠分隔的片段都是指向某一控制器(controller)、操作(action)或是行为(do)。
第二个参数则是以数组的形式表示URL中的QueryString。例如:

echo url('site/entry/user', array('m' => 'module_name'));
// http://www.yourwebsite.com/web/index.php?c=site&a=entry&do=user&m=module_name

echo url('mc/index');
// http://www.yourwebsite.com/app/index.php?c=mc&a=index&
2、$this->createMobileUrl() - 生成app端的url
$this->createMobileUrl(string $string, $params = array());
class Module_nameModuleSite extends WeModuleSite {
    public function doMobileIndex() {
        echo $this->createMobileUrl('home');
    }
    public function doMobileHome() {
        //上面doMobileIndex()生成的链接会进入到这里
    }
}
3、$this->createWebUrl() - 生成web端url
$this->createWebUrl(string $string, $params = array());
class Module_nameModuleSite extends WeModuleSite {
    public function doWebIndex() {
        echo $this->createWebUrl('home');
    }
    public function doWebHome() {
        //上面doWebIndex()生成的链接会进入到这里
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 摘自:https://www.kancloud.cn/donknap/we7/134629 URL路由 入口脚本程...
    1个娱乐吻阅读 11,768评论 0 1
  • 微擎笔记2 微擎路由: 入口脚本程序获取到到URL中相关的GET参数,解析后进行权限判断,然后调用相应的控制器处理...
    R_xxx阅读 2,812评论 0 0
  • 之前没接触过微擎 ,这个路由真的要被烦死,建议刚接触的宝宝们一定一定先看开发文档,再去接触代码 ,over. 1、...
    R_xxx阅读 5,655评论 0 1
  • github地址,欢迎大家提交更新。 express() express()用来创建一个Express的程序。ex...
    Programmer客栈阅读 7,468评论 0 1
  • 回首页 第一部分 Drupal简介 Drupal overview A tour of Drupal fundam...
    王乂阅读 6,281评论 0 9