Класс yii\helpers\BaseUrl
| Наследование | yii\helpers\BaseUrl |
|---|---|
| Подклассы | yii\helpers\Url |
| Доступно с версии | 2.0 |
| Исходный код | https://github.com/yiisoft/yii2/blob/master/framework/helpers/BaseUrl.php |
BaseUrl предоставляет конкретную реализацию для yii\helpers\Url.
Не используйте BaseUrl. Используйте yii\helpers\Url вместо него.
Публичные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $urlManager | yii\web\UrlManager | Менеджер URL для создания URL-адресов | yii\helpers\BaseUrl |
Публичные методы
| Метод | Описание | Определено в |
|---|---|---|
| base() | Возвращает базовый URL текущего запроса. | yii\helpers\BaseUrl |
| canonical() | Возвращает канонический URL текущей страницы. | yii\helpers\BaseUrl |
| current() | Создает URL, используя текущий маршрут и параметры GET. | yii\helpers\BaseUrl |
| ensureScheme() | Нормализует URL, гарантируя, что он использует указанный протокол. | yii\helpers\BaseUrl |
| home() | Возвращает домашний URL. | yii\helpers\BaseUrl |
| isRelative() | Возвращает значение, указывающее, является ли URL относительным. | yii\helpers\BaseUrl |
| previous() | Возвращает URL, запомненный ранее. | yii\helpers\BaseUrl |
| remember() | Запоминает указанный URL, чтобы его можно было позже получить с помощью previous(). | yii\helpers\BaseUrl |
| to() | Создает URL на основе заданных параметров. | yii\helpers\BaseUrl |
| toRoute() | Создает URL для заданного маршрута. | yii\helpers\BaseUrl |
Защищенные методы
| Метод | Описание | Определено в |
|---|---|---|
| getUrlManager() | yii\helpers\BaseUrl | |
| normalizeRoute() | Нормализует маршрут и делает его пригодным для UrlManager. Абсолютные маршруты остаются такими же, а относительные маршруты преобразуются в абсолютные. | yii\helpers\BaseUrl |
Подробное описание свойств
$urlManager публическое статическое свойство (доступно с версии 2.0.8)
Менеджер URL для создания URL-адресов
public static yii\web\UrlManager $urlManager = null
Подробное описание методов
base() общедоступный статический метод
Возвращает базовый URL текущего запроса.
| общедоступный статический строка base ( $scheme = false ) | ||
|---|---|---|
| $scheme | булево|строка |
Схема URI для использования в возвращаемом базовом URL:
|
canonical() общедоступный статический метод
Возвращает канонический URL текущей запрошенной страницы.
Канонический URL строится с использованием yii\web\Controller::$route и yii\web\Controller::$actionParams текущего контроллера. В представлении макета можно использовать следующий код для добавления тега ссылки о каноническом URL:
$this->registerLinkTag(['rel' => 'canonical', 'href' => Url::canonical()]);
| общедоступный статический строка canonical ( ) | ||
|---|---|---|
| return | строка |
Канонический URL текущей запрошенной страницы |
current() общедоступный статический метод (доступен начиная с версии 2.0.3)
Создаёт URL, используя текущий маршрут и параметры GET.
Вы можете изменить или удалить некоторые параметры GET, или добавить дополнительные параметры запроса через параметр $params. В частности, если вы укажете параметр в качестве null, то этот параметр будет удалён из существующих параметров GET; все остальные параметры, указанные в $params, будут объединены с существующими параметрами GET. Например,
// assume $_GET = ['id' => 123, 'src' => 'google'], current route is "post/view" // /index.php?r=post%2Fview&id=123&src=google echo Url::current(); // /index.php?r=post%2Fview&id=123 echo Url::current(['src' => null]); // /index.php?r=post%2Fview&id=100&src=google echo Url::current(['id' => 100]);
Обратите внимание, что если вы заменяете параметры массива с [] в конце, вы должны указать $params как вложенные массивы. Для модели PostSearchForm, где имена параметров PostSearchForm[id] и PostSearchForm[src], синтаксис будет следующим:
// index.php?r=post%2Findex&PostSearchForm%5Bid%5D=100&PostSearchForm%5Bsrc%5D=google
echo Url::current([
$postSearch->formName() => ['id' => 100, 'src' => 'google'],
]);
| общедоступный статический строка current ( массив $params = [], $scheme = false ) | ||
|---|---|---|
| $params | массив |
Ассоциативный массив параметров, который будет объединён с текущими параметрами GET. Если значение параметра равно null, соответствующий параметр GET будет удалён. |
| $scheme | булево|строка |
Схема URI для использования в создаваемом URL:
|
| return | строка |
Созданный URL |
ensureScheme() общедоступный статический метод (доступен начиная с версии 2.0.11)
Нормализует URL, гарантируя использование указанной схемы.
Если URL относительный или схема не является строкой, нормализация пропускается.
| общедоступный статический строка ensureScheme ( $url, $scheme ) | ||
|---|---|---|
| $url | строка |
URL для обработки |
| $scheme | строка |
Схема URI, используемая в URL (например, |
| return | строка |
Обработанный URL |
getUrlManager() защищённый статический метод (доступен начиная с версии 2.0.8)
| защищённый статический yii\web\UrlManager getUrlManager ( ) | ||
|---|---|---|
| return | yii\web\UrlManager |
Менеджер URL, используемый для создания URL |
home() общедоступный статический метод
Возвращает домашний URL.
| общедоступный статический строка home ( $scheme = false ) | ||
|---|---|---|
| $scheme | булево|строка |
Схема URI для использования в возвращаемом URL:
|
| return | строка |
Домашний URL |
isRelative() общедоступный статический метод
Возвращает значение, указывающее, является ли URL относительным.
Относительный URL не имеет части информации о хосте.
| общедоступный статический булево isRelative ( $url ) | ||
|---|---|---|
| $url | строка |
URL для проверки |
| return | булево |
Является ли URL относительным |
normalizeRoute() защищённый статический метод
Нормализует маршрут и делает его подходящим для UrlManager. Абсолютные маршруты остаются неизменными, а относительные маршруты преобразуются в абсолютные.
Относительный маршрут — это маршрут без ведущего слэша, например, "view", "post/view".
- Если маршрут пустая строка, используется текущий маршрут;
- Если маршрут вообще не содержит слэшей, он рассматривается как идентификатор действия текущего контроллера и будет добавлен перед yii\web\Controller::$uniqueId;
- Если маршрут не имеет ведущего слэша, он считается маршрутом, относительным к текущему модулю, и будет добавлен перед uniqueId модуля.
Начиная с версии 2.0.2, маршрут также может быть указан в виде псевдонима. В этом случае псевдоним будет сначала преобразован в фактический маршрут, прежде чем будут выполнены указанные выше шаги преобразования.
| защищённый статический строка normalizeRoute ( $route ) | ||
|---|---|---|
| $route | строка |
Маршрут. Это может быть абсолютный или относительный маршрут. |
| return | строка |
Нормализованный маршрут, подходящий для UrlManager |
| throws | yii\base\InvalidParamException |
относительный маршрут указан, в то время как активный контроллер отсутствует |
previous() общедоступный статический метод
Возвращает URL, ранее запомненный.
См. также:
| общедоступный статический строка|null previous ( $name = null ) | ||
|---|---|---|
| $name | строка |
Имя, связанное с URL, который был сохранён ранее. Если не указано, yii\web\User::getReturnUrl() используется для получения сохранённого URL. |
| return | строка|null |
Ранее сохранённый URL. Возвращает null, если URL не был сохранён с данным именем и |
remember() общедоступный статический метод
Запоминает указанный URL, чтобы его можно было позже получить с помощью previous().
См. также:
| public static void remember ( $url = '', $name = null ) | ||
|---|---|---|
| $url | строка|массив |
URL для запоминания. Обратитесь к to() для допустимых форматов. Если этот параметр не указан, будет использован текущий запрашиваемый URL. |
| $name | строка |
Имя, связанное с URL для запоминания. Это может быть использовано позднее методом previous(). Если не задано, будет использоваться yii\web\User::setReturnUrl() с переданным URL. |
to() public static метод
Создаёт URL на основе заданных параметров.
Этот метод очень похож на toRoute(). Единственное отличие заключается в том, что этот метод требует указания маршрута только в виде массива. Если задана строка, она будет обрабатываться как URL. В частности, если $url
- массив: будет вызван метод toRoute() для генерации URL. Например:
['site/index'],['post/index', 'page' => 2]. Обратитесь к toRoute() для получения более подробной информации о том, как указать маршрут. - строка с префиксом
@: она обрабатывается как псевдоним, и возвращается соответствующая строка-псевдоним. - пустая строка: возвращается текущий запрашиваемый URL;
- обычная строка: возвращается как есть.
Когда $scheme указан (либо строка, либо true), возвращается абсолютный URL с информацией о хосте (полученной из yii\web\UrlManager::$hostInfo). Если $url уже является абсолютным URL, его схема заменяется указанной.
Ниже приведены некоторые примеры использования этого метода:
// /index.php?r=site%2Findex
echo Url::to(['site/index']);
// /index.php?r=site%2Findex&src=ref1#name
echo Url::to(['site/index', 'src' => 'ref1', '#' => 'name']);
// /index.php?r=post%2Findex assume the alias "@posts" is defined as "/post/index"
echo Url::to(['@posts']);
// 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');
// //www.example.com/images/logo.gif
echo Url::to('@web/images/logo.gif', '');
| public static строка to ( $url = '', $scheme = false ) | ||
|---|---|---|
| $url | массив|строка |
Параметр, используемый для генерации корректного URL |
| $scheme | булево значение|строка |
Схема URI для использования в генерируемом URL:
|
| return | строка |
Сгенерированный URL |
| throws | yii\base\InvalidParamException |
относительный маршрут задан, но активного контроллера нет |
toRoute() public static метод
Создаёт URL для заданного маршрута.
Этот метод будет использовать yii\web\UrlManager для создания URL.
Вы можете указать маршрут как строку, например, site/index. Также можно использовать массив, если необходимо указать дополнительные параметры запроса для создаваемого URL. Формат массива должен быть:
// generates: /index.php?r=site/index¶m1=value1¶m2=value2 ['site/index', 'param1' => 'value1', 'param2' => 'value2']
Если нужно создать URL с якорем, можно использовать формат массива с параметром #. Например,
// generates: /index.php?r=site/index¶m1=value1#name ['site/index', 'param1' => 'value1', '#' => 'name']
Маршрут может быть абсолютным или относительным. Абсолютный маршрут имеет префикс слэшем (например, /site/index), в то время как относительный — нет (например, site/index или index). Относительный маршрут будет преобразован в абсолютный по следующим правилам:
- Если маршрут пустой, будет использован текущий маршрут route;
- Если маршрут не содержит слэшей (например,
index), он считается идентификатором действия текущего контроллера и будет добавлен к yii\web\Controller::$uniqueId; - Если маршрут не имеет префиксного слэша (например,
site/index), он считается маршрутом, относительным к текущему модулю, и будет добавлен к уникальному идентификатору модуля uniqueId.
Начиная с версии 2.0.2, маршрут также может быть указан как псевдоним. В этом случае псевдоним будет преобразован в фактический маршрут перед применением вышеупомянутых шагов преобразования.
Ниже приведены примеры использования этого метода:
// /index.php?r=site%2Findex
echo Url::toRoute('site/index');
// /index.php?r=site%2Findex&src=ref1#name
echo Url::toRoute(['site/index', 'src' => 'ref1', '#' => 'name']);
// http://www.example.com/index.php?r=site%2Findex
echo Url::toRoute('site/index', true);
// https://www.example.com/index.php?r=site%2Findex
echo Url::toRoute('site/index', 'https');
// /index.php?r=post%2Findex assume the alias "@posts" is defined as "post/index"
echo Url::toRoute('@posts');
| public static строка toRoute ( $route, $scheme = false ) | ||
|---|---|---|
| $route | строка|массив |
Используйте строку для представления маршрута (например, |
| $scheme | булево значение|строка |
Схема URI для использования в генерируемом URL:
|
| return | строка |
Сгенерированный URL |
| throws | yii\base\InvalidParamException |
относительный маршрут задан, но активного контроллера нет |
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-helpers-baseurl.html