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);
}