yii2 的 Url::to() 和 Url::toRoute()

作者: php 发布时间: 2019-08-16 浏览: 1917 次 编辑

关于Url类的操作在这个页面http://www.yiichina.com/doc/guide/2.0/helper-url;

Url::to() 和 toRoute() 非常类似。这两个方法的唯一区别在于,前者要求一个路由必须用数组来指定。 如果传的参数为字符串,它将会被直接当做 URL 

Url::to() 的第一个参数可以是:

  • 数组: 将会调用 toRoute() 来生成URL。比如: ['site/index']['post/index', 'page' => 2] 。 详细用法请参考 toRoute() 。

  • 带前导 @ 的字符串: 它将会被当做别名, 对应的别名字符串将会返回。

  • 空的字符串: 当前请求的 URL 将会被返回;

  • 普通的字符串: 返回本身

        Url::to('@web/imgs/loading2.gif') :   返回的是 basic/web/imgs/loading2.gif , 

        Url::to('/imgs/loading2.gif',true)    返回的是 http://localhost/basic/web/imgs/loading2.gif(添加了域名,变成了绝对路径)。

// /index.php?r=site/index
echo Url::to(['site/index']);

// /index.php?r=site/index&src=ref1#name
echo Url::to(['site/index', 'src' => 'ref1', '#' => 'name']);

// /index.php?r=post/edit&id=100     assume the alias "@postEdit" is defined as "post/edit"
echo Url::to(['@postEdit', 'id' => 100]);

// the currently requested URL
echo Url::to();

// /images/logo.gif
echo Url::to('@web/images/logo.gif');

// images/logo.gif
echo Url::to('images/logo.gif');

// http://www.example.com/images/logo.gif
echo Url::to('@web/images/logo.gif', true);

// https://www.example.com/images/logo.gif
echo Url::to('@web/images/logo.gif', 'https');