thinkphp6 url的生成

414 阅读1分钟

URL生成使用 \think\facade\Route::buildUrl() 方法即可。该方法会返回一个think\route\Url对象实例,因为使用了__toString方法,因此可以直接输出路由地址。

1.
echo \think\facade\Route::buildUrl();

如果是通过数据返回客户端,你可以先强制转换为字符串类型后再返回。

2.
$url = (string) \think\facade\Route::buildUrl();

或者调用think\route\Url对象的 build()方法也同样返回url字符串

3.
$url = Route::buildUrl('/blog/read', ['id' => 5, 'name' => 'thinkphp'])
->suffix('html')
->domain(true)
->build();

// http://english.book.com/blog/read.html?id=5&name=thinkphp

或者助手函数生成url返回的是think\route\Url对象, 需使用上述的(string) url();或者调用url()->build()方法获取

4
function url(string $url = '', array $vars = [], $suffix = true, $domain = false): UrlBuild
{
    return Route::buildUrl($url, $vars)->suffix($suffix)->domain($domain);
}