1CMS文档

路由

路由数据会在应用安装时存入数据库,如需修改,请在修改代码后,关闭应用再开启,或使用开发者工具重载应用

注解路由

/**
* @name 666666
* @route /666666/
*/
function testPage(){
    echo('666666');
    return true;
}
/**
* @name 网址匹配
* @route /userinfo/(name)/
*/
function userinfo(){
    echo('name:'.$_GET['name']);
    return true;
}
/**
* @name 路由标识
* @route hash=page2;uri=/page_2/
*/
function testPage2(){
    echo('page2.');
    return true;
}
//可以通过route('page2')获取到此路由具体的访问网址,如未开启伪静态,访问网址为/index.php/page_2/

当路由未指定标识时,标识=方法,模块内的路由标识为 模块_方法,多行路由注解会在标识末尾增加序号

route方法

应用主文件内 route方法,返回当前应用的路由列表.

function route(){
    $routes=array();
    $routes[]=array('hash'=>'mypage','uri'=>'mypage.html','function'=>'mypage','view'=>'1.php','enabled'=>1);
    $routes[]=array('hash'=>'mypage2','uri'=>'mypage2.html','function'=>'mypage2','view'=>'2.php','enabled'=>1);
    Return $routes;
}

hash为当前路由的标识,不能与当前应用下的路由重复(包括应用内的模型标识).

uri为路由的网址,支持匹配写法,如:/mypage/(id)/,/mypage/(name)/,匹配到的参数会保存在$_GET数组中

enabled为是否启用路由

function 为路由的方法,如方法在应用模块中,则为模块名:方法名

view 为模板页面,可以不填写.php后缀

function与view必须填写其中一项,function也可使用V函数载入模板,function如果返回了数组,可以在view中调用.

当应用在后台(启用,更新,后台应用设置保存)时,路由列表会存入数据库中.

获取路由网址

如某个路由的uri为mypage.html,由于1CMS开启关闭伪静态,子目录会导致uri变化.

可以使用route函数获取对应路由的实际网址.

<?php
route('mypage');//标识为mypage的路由的实际网址

如开启了伪静态,访问网址为/mypage.html 关闭伪静态后为 /index.php/mypage.html