企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
### Url生成 ***** url生成,可以在视图中引用,也可以在控制器中使用,它是一个助手函数,意在快速构建标准连接。 语法: `url(路径);` `url(路径,参数);` * **路径** "模块/控制器/方法" 可以简写,只填写 "控制器/方法" 或 "方法" 。 * **参数** " 可以为空不传,如有参数必须是**数组**形式。 * 另外 **路径** 又可以分为 **相对路径** 和 **指定路径** 。相对路径即在填写路径时路径左侧没有 "/" 斜线,系统在生成url时会自动根据当前的位置进行"模块/控制器"补全。 指定路径即系统不会补全。 例: `url('index'); //相对路径` `url('index/info'); //相对路径` `url('index/info/page');` `url('/index'); //指定路径` `url('/index/info'); //指定路径` 也可以传入参数: `url('index',['id'=>5]);` `url('index/info',['id'=>5]);` `url('index/info/page',['id'=>5,'fid'=>7]);` `url('/index',['id'=>5]);` `url('/index/info',['id'=>5]);` * [ ] url生成模式分为传统模式和优化模式,有 config 中 url_common_param 控制。 ``` //生成url模式 默认:false 优化模式,true 传统模式 'url_common_param' => false, ``` 例如:当我们设置为 传统模式 true 时 ``` <php namespace app\admin\controller; use tian\Controller; class index extends Controller { public function index() { $str = url('info',['id'=>10]); //相对路径 $strs = url('/info',['id'=>10]); //指定路径 $strss = url('page/info',['id'=>10]); $strsss = url('/about/info',['id'=>10]); echo $str; echo "<br>"; echo $strs; echo "<br>"; echo $strss; echo "<br>"; echo $strsss; } } ``` 输出: ``` /admin/index/info.html?id=10 //系统补全 '模块/控制器' admin/index /info.html?id=10 /admin/page/info.html?id=10 //系统补全 '模块' admin /about/info.html?id=10 ``` 例如:当我们设置为 优化模式 false 时, 上例输出: ``` /admin/index/info/id/10.html /info/id/10.html /admin/page/info/id/10.html /about/info/id/10.html ``` 有一种特殊情况,在 **优化模式下 且 指定路径模式,url生成自动遵循路由设定,如未匹配到路由规则,则参数串按传入数组键值对生成** 例: 在config/route.php中配置路由规则: ``` <?php use tian\Route; Route::get('info/:id', 'index/news/info'); ``` 控制器中: ``` namespace app\index\controller; use tian\Controller; class News extends Controller { public function index() { $str = url('/info',['id'=>10]); echo $str; //输出:/info/10.html } public function info() { $id = input('id); echo $id; //10 } } ``` 以上 url 助手函数是在控制器中的应用,如需在视图模板中使用,使用方法相同。