mirror of
				https://github.com/yiisoft/yii2.git
				synced 2025-11-04 22:57:40 +08:00 
			
		
		
		
	url rename
This commit is contained in:
		@ -1,13 +1,13 @@
 | 
				
			|||||||
Url хелпер
 | 
					Url хелпер
 | 
				
			||||||
==========
 | 
					==========
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Url хелпер предоставляет набор статических методов для управления урлами.
 | 
					Url хелпер предоставляет набор статических методов для управления URL.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Получение общих урлов <span id="getting-common-urls"></span>
 | 
					## Получение общих URL <span id="getting-common-urls"></span>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Вы можете использовать два метода получения общих урлов: домашний Урл (Home) и базовый Урл (Base) текущего запроса.
 | 
					Вы можете использовать два метода получения общих URL: домашний URL (Home) и базовый URL (Base) текущего запроса.
 | 
				
			||||||
Используйте следующий код, чтобы получить домашний Урл:
 | 
					Используйте следующий код, чтобы получить домашний URL:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```php
 | 
					```php
 | 
				
			||||||
$relativeHomeUrl = Url::home();
 | 
					$relativeHomeUrl = Url::home();
 | 
				
			||||||
@ -15,10 +15,10 @@ $absoluteHomeUrl = Url::home(true);
 | 
				
			|||||||
$httpsAbsoluteHomeUrl = Url::home('https');
 | 
					$httpsAbsoluteHomeUrl = Url::home('https');
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Если вы не передали параметров, то получите относительный урл. Вы можете передать `true`, чтобы получить абсолютный урл
 | 
					Если вы не передали параметров, то получите относительный URL. Вы можете передать `true`, чтобы получить абсолютный URL
 | 
				
			||||||
для текущего протокола или явно указать протокол (`https`, `http`).
 | 
					для текущего протокола или явно указать протокол (`https`, `http`).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Чтобы получить базовый Урл текущего запроса:
 | 
					Чтобы получить базовый URL текущего запроса:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```php
 | 
					```php
 | 
				
			||||||
$relativeBaseUrl = Url::base();
 | 
					$relativeBaseUrl = Url::base();
 | 
				
			||||||
@ -28,32 +28,32 @@ $httpsAbsoluteBaseUrl = Url::base('https');
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Единственный параметр данного метода работает также как и `Url::home()`.
 | 
					Единственный параметр данного метода работает также как и `Url::home()`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Создание Урлов <span id="creating-urls"></span>
 | 
					## Создание URL <span id="creating-urls"></span>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Чтобы создать урл для соответствующего роута используйте метод `Url::toRoute()`. Метод использует [[\yii\web\UrlManager]].
 | 
					Чтобы создать URL для соответствующего роута используйте метод `Url::toRoute()`. Метод использует [[\yii\web\UrlManager]].
 | 
				
			||||||
Для того чтобы создать урл:
 | 
					Для того чтобы создать URL:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```php
 | 
					```php
 | 
				
			||||||
$url = Url::toRoute(['product/view', 'id' => 42]);
 | 
					$url = Url::toRoute(['product/view', 'id' => 42]);
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
Вы можете задать роут строкой, например, `site/index`. А также вы можете использовать массив, если хотите задать
 | 
					Вы можете задать роут строкой, например, `site/index`. А также вы можете использовать массив, если хотите задать
 | 
				
			||||||
дополнительные параметры запроса для урла. Формат массива должен быть следующим:
 | 
					дополнительные параметры запроса для URL. Формат массива должен быть следующим:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```php
 | 
					```php
 | 
				
			||||||
// сгенерирует: /index.php?r=site/index¶m1=value1¶m2=value2
 | 
					// сгенерирует: /index.php?r=site/index¶m1=value1¶m2=value2
 | 
				
			||||||
['site/index', 'param1' => 'value1', 'param2' => 'value2']
 | 
					['site/index', 'param1' => 'value1', 'param2' => 'value2']
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Если вы хотите создать урл с якорем, то вы можете использовать параметр массива с ключом `#`. Например:
 | 
					Если вы хотите создать URL с якорем, то вы можете использовать параметр массива с ключом `#`. Например:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```php
 | 
					```php
 | 
				
			||||||
// сгенерирует: /index.php?r=site/index¶m1=value1#name
 | 
					// сгенерирует: /index.php?r=site/index¶m1=value1#name
 | 
				
			||||||
['site/index', 'param1' => 'value1', '#' => 'name']
 | 
					['site/index', 'param1' => 'value1', '#' => 'name']
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Роут может быть и абсолютным, и относительным. Абсолютный урл начинается со слеша (например, `/site/index`),
 | 
					Роут может быть и абсолютным, и относительным. Абсолютный URL начинается со слеша (например, `/site/index`),
 | 
				
			||||||
относительный - без (например, `site/index` or `index`). Относительный урл будет сконвертирован в абсолютный по следующим
 | 
					относительный - без (например, `site/index` or `index`). Относительный URL будет сконвертирован в абсолютный по следующим
 | 
				
			||||||
правилам:
 | 
					правилам:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- Если роут пустая строка, то будет использовано текущее значение [[\yii\web\Controller::route|route]];
 | 
					- Если роут пустая строка, то будет использовано текущее значение [[\yii\web\Controller::route|route]];
 | 
				
			||||||
@ -86,17 +86,17 @@ echo Url::toRoute('site/index', 'https');
 | 
				
			|||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Другой метод `Url::to()` очень похож на [[toRoute()]]. Единственное отличие: входным параметром должен быть массив.
 | 
					Другой метод `Url::to()` очень похож на [[toRoute()]]. Единственное отличие: входным параметром должен быть массив.
 | 
				
			||||||
Если будет передана строка, то она будет воспринята как урл.
 | 
					Если будет передана строка, то она будет воспринята как URL.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Первый аргумент может быть:
 | 
					Первый аргумент может быть:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- массивом: будет вызван [[toRoute()]], чтобы сгенерировать урл. Например: `['site/index']`, `['post/index', 'page' => 2]`.
 | 
					- массивом: будет вызван [[toRoute()]], чтобы сгенерировать URL. Например: `['site/index']`, `['post/index', 'page' => 2]`.
 | 
				
			||||||
  В разделе [[toRoute()]] подробно описано как задавать роут;
 | 
					  В разделе [[toRoute()]] подробно описано как задавать роут;
 | 
				
			||||||
- Строка, начинающася с `@`, будет обработана как псевдоним. Будет возвращено соответствующее значение псевдонима;
 | 
					- Строка, начинающася с `@`, будет обработана как псевдоним. Будет возвращено соответствующее значение псевдонима;
 | 
				
			||||||
- Пустая строка: вернет текущий урл;
 | 
					- Пустая строка: вернет текущий URL;
 | 
				
			||||||
- Обычная строка: вернет строку без имзенений
 | 
					- Обычная строка: вернет строку без имзенений
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Когда у метода задан второй параметр `$scheme` (строка или true), то сгенерированный урл будет с протоколом
 | 
					Когда у метода задан второй параметр `$scheme` (строка или true), то сгенерированный URL будет с протоколом
 | 
				
			||||||
(полученным из [[\yii\web\UrlManager::hostInfo]]). Если в `$url` указан протокол, то его значение будет заменено.
 | 
					(полученным из [[\yii\web\UrlManager::hostInfo]]). Если в `$url` указан протокол, то его значение будет заменено.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Пример использования:
 | 
					Пример использования:
 | 
				
			||||||
@ -111,7 +111,7 @@ echo Url::to(['site/index', 'src' => 'ref1', '#' => 'name']);
 | 
				
			|||||||
// /index.php?r=post/edit&id=100     псевдоним "@postEdit" задан как "post/edit"
 | 
					// /index.php?r=post/edit&id=100     псевдоним "@postEdit" задан как "post/edit"
 | 
				
			||||||
echo Url::to(['@postEdit', 'id' => 100]);
 | 
					echo Url::to(['@postEdit', 'id' => 100]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Текущий урл
 | 
					// Текущий URL
 | 
				
			||||||
echo Url::to();
 | 
					echo Url::to();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// /images/logo.gif
 | 
					// /images/logo.gif
 | 
				
			||||||
@ -127,7 +127,7 @@ echo Url::to('@web/images/logo.gif', true);
 | 
				
			|||||||
echo Url::to('@web/images/logo.gif', 'https');
 | 
					echo Url::to('@web/images/logo.gif', 'https');
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Начиная с версии 2.0.3, вы можете использовать [[yii\helpers\Url::current()]], чтобы создавать урл на основе текущего
 | 
					Начиная с версии 2.0.3, вы можете использовать [[yii\helpers\Url::current()]], чтобы создавать URL на основе текущего
 | 
				
			||||||
запрошенного роута и его GET-параметров. Вы можете изменить, удалить или добавить новые GET-параметры передав в метод
 | 
					запрошенного роута и его GET-параметров. Вы можете изменить, удалить или добавить новые GET-параметры передав в метод
 | 
				
			||||||
параметр `$params`. Например:
 | 
					параметр `$params`. Например:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -144,32 +144,32 @@ echo Url::current(['id' => 100]);
 | 
				
			|||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Запоминание урлов <span id="remember-urls"></span>
 | 
					## Запоминание URL <span id="remember-urls"></span>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Существуют задачи, когда вам необходимо запомнить урл и потом использовать его в процессе одного или нескольких
 | 
					Существуют задачи, когда вам необходимо запомнить URL и потом использовать его в процессе одного или нескольких
 | 
				
			||||||
последовательных запросов. Это может быть достигнуто следующим образом:
 | 
					последовательных запросов. Это может быть достигнуто следующим образом:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```php
 | 
					```php
 | 
				
			||||||
// Запомнить текущий урл
 | 
					// Запомнить текущий URL
 | 
				
			||||||
Url::remember();
 | 
					Url::remember();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Запомнить определенный урл. Входные параметры смотрите на примере Url::to().
 | 
					// Запомнить определенный URL. Входные параметры смотрите на примере Url::to().
 | 
				
			||||||
Url::remember(['product/view', 'id' => 42]);
 | 
					Url::remember(['product/view', 'id' => 42]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Запомнить урл под определенным именем
 | 
					// Запомнить URL под определенным именем
 | 
				
			||||||
Url::remember(['product/view', 'id' => 42], 'product');
 | 
					Url::remember(['product/view', 'id' => 42], 'product');
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
В следующем запросе мы можем получить сохраненный урл следующим образом:
 | 
					В следующем запросе мы можем получить сохраненный URL следующим образом:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```php
 | 
					```php
 | 
				
			||||||
$url = Url::previous();
 | 
					$url = Url::previous();
 | 
				
			||||||
$productUrl = Url::previous('product');
 | 
					$productUrl = Url::previous('product');
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
                        
 | 
					                        
 | 
				
			||||||
## Проверить относительность урла <span id="checking-relative-urls"></span>
 | 
					## Проверить относительность URL <span id="checking-relative-urls"></span>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Чтобы проверить относительный урл или нет (например, если в нем не содержится информации о хосте), вы можете использовать
 | 
					Чтобы проверить относительный URL или нет (например, если в нем не содержится информации о хосте), вы можете использовать
 | 
				
			||||||
следующий код:
 | 
					следующий код:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```php
 | 
					```php
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user