think PHP URL生成

定义路由规则之后,我们可以通过Url类来方便的生成实际的URL地址(路由地址),针对上面的路由规则,我们可以用下面的方式生成URL地址。

// 输出 blog/thinkphp
Url::build('blog/read', 'name=thinkphp'); Url::build('blog/read', ['name' => 'thinkphp']); // 输出 blog/5 Url::build('blog/get', 'id=5'); Url::build('blog/get', ['id' => 5]); // 输出 blog/2015/05 Url::build('blog/archive', 'year=2015&month=05'); Url::build('blog/archive', ['year' => '2015', 'month' => '05']);

提示:

build方法的第一个参数使用路由定义中的完整路由地址。

我们还可以使用系统提供的助手函数url来简化

url('blog/read', 'name=thinkphp'); // 等效于 Url::build('blog/read', 'name=thinkphp'); 

通常在模板文件中输出的话,可以使用助手函数,例如:

{:url('blog/read', 'name=thinkphp')} 

如果我们的路由规则发生调整,生成的URL地址会自动变化。

如果你配置了url_html_suffix参数的话,生成的URL地址会带上后缀,例如:

'url_html_suffix'   => 'html', 

那么生成的URL地址 类似

blog/thinkphp.html 
blog/2015/05.html 

如果你的URL地址全部采用路由方式定义,也可以直接使用路由规则来定义URL生成,例如:

url('/blog/thinkphp'); Url::build('/blog/8'); Url::build('/blog/archive/2015/05'); 

生成方法的第一个参数一定要和路由定义的路由地址保持一致,如果你的路由地址比较特殊,例如使用闭包定义的话,则需要手动给路由指定标识,例如:

// 添加hello路由标识
Route::rule(['hello','hello/:name'], function($name){ return 'Hello,'.$name; }); // 根据路由标识快速生成URL Url::build('hello', 'name=thinkphp'); // 或者使用 Url::build('hello', ['name' => 'thinkphp']); 

目前为止,我们掌握的路由功能还只是ThinkPHP5.0路由功能的冰山一角,以后我们还会通过更多的专题来讲解路由。

【 5.1 】使用须知


5.1版本,你需要引入think\facade\Url才能使用静态方法调用,其它用法不变。

转载于:https://www.cnblogs.com/xu1115/p/10983088.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值