天天看點

Yii2 Url路徑

Url::to

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

Url::toRoute

[Url::toRoute] - 擷取某一位址 => 現在測試本地路徑(http://daxia.dc.weixin.com/mobile/hmConnections/user/verify-user)
1://擷取某位址 - 相對路徑
$url = Url::toRoute('site/index');
例如: /mobile/hmConnections/site/index

2://擷取某位址 - 相對路徑
$url = Url::toRoute('site/index', false);
例如: /mobile/hmConnections/site/index
說明: 等價于1 因為預設是false

3://擷取某位址 - 相對路徑
$url = Url::toRoute(['site/index', 'id' => 1]);
例如: /mobile/hmConnections/site/index?id=1

4://擷取某位址的 - 絕對路徑
$url = Url::toRoute('site/index', true);
例如: http://daxia.dc.weixin.com/mobile/hmConnections/site/index

5://擷取某位址的 - 絕對路徑
$url = Url::toRoute('site/index', ['id' => 1]);
例如: http://daxia.dc.weixin.com/mobile/hmConnections/site/index
說明: 參數沒有輸出,說明,這種寫法['id' => 1], 他當成了true,是以等價于4

6://擷取某位址的 - 絕對路徑 (傳輸協定-http)
$url = Url::toRoute('site/index', 'http');
例如: https://daxia.dc.weixin.com/mobile/hmConnections/site/index
說明: 等價于4

7://擷取某位址的 - 絕對路徑 (傳輸協定-https)
$url = Url::toRoute('site/index', 'https');
例如: https://daxia.dc.weixin.com/mobile/hmConnections/site/index

           

Url::current

[Url::to] - 建立一個基于給定參數的網址 => 現在測試本地路徑(http://daxia.dc.weixin.com/mobile/hmConnections/user/verify-user)

a: //擷取目前路徑 - 相對路徑
$url = Url::current();
舉例:/mobile/hmConnections/user/verify-user

b: //擷取目前路徑 - 相對路徑
$url = Url::current(['id' => 1], false);
例如: /mobile/hmConnections/user/verify-user?id=1

c: //擷取目前路徑 - 絕對路徑
$url = Url::current(['id' => 1], true);
例如: http://daxia.dc.weixin.com/mobile/hmConnections/user/verify-user?id=1

d: //擷取目前路徑 - 絕對路徑 傳輸協定-http
$url = Url::current(['id' => 1], 'http');
例如: http://daxia.dc.weixin.com/mobile/hmConnections/user/verify-user?id=1

e: //擷取目前路徑 - 絕對路徑 傳輸協定-https
$url = Url::current(['id' => 1], 'https');
例如: https://daxia.dc.weixin.com/mobile/hmConnections/user/verify-user?id=1