路由
路由数据会在应用安装时存入数据库,如需修改,请在修改代码后,关闭应用再开启,或使用开发者工具重载应用
注解路由
/**
* @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