Повний посібник (v2) Url хелпер - Українська спільнота Yii Framework

Хелпер Url надає набір статичних методів управління URL.

Отримання загальних URL #

Ви можете використовувати два методи отримання спільних URL: домашня URL (Home) та базова URL (Base) поточного запиту. Використовуйте наступний код, щоб отримати домашній URL:

Якщо ви не передали параметри, отримайте відносну URL-адресу. Ви можете передати true щоб отримати абсолютний URL для поточного протоколу або явно вказати протокол ( https , http ).

Щоб отримати базову URL-адресу поточного запиту:

Єдиний параметр даного методу працює як і Url::home() .

Створення URL #

Щоб створити URL для відповідного роуту, використовуйте метод Url::toRoute() . Метод використовує \yii\web\UrlManager. Для того, щоб створити URL:

Ви можете встановити роут рядком, наприклад, site/index . А також ви можете використовувати масив, якщо хочете встановити додаткові параметри запиту для URL. Формат масиву має бути наступним:

Якщо ви хочете створити URL з якорем, ви можете використовувати параметр масиву з ключем # . Наприклад:

Роут може бути абсолютним, і відносним. Абсолютний URL починається зі слеша (наприклад, /site/index ), відносний - без (наприклад, site/index or index ). Відносна URL буде конвертована в абсолютну за такими правилами:

  • Якщо роут порожній рядок, буде використано поточне значення route;
  • Якщо роут не містить слішів (наприклад, index ), то він буде вважатися екшеном поточного контролера і буде визначено за допомогою \yii\web\Controller::uniqueId;
  • Якщо роут починається не зі слішу (наприклад, site/index ), то він буде вважатися відносним роутом поточного модуля і буде визначено за допомогою uniqueId.

Починаючи з версії 2.0.2,Ви можете задавати роути за допомогою псевдонімів. У цьому випадку, спочатку псевдонім буде сконвертовано у відповідний роут, який буде перетворено на абсолютний відповідно до вищеописаних правил.

Приклади використання методу:

Інший метод Url::to() дуже схожий на toRoute(). Єдина відмінність: вхідним параметром має бути масив. Якщо буде передано рядок, він буде сприйнятий як URL.

Перший аргумент може бути:

  • масивом: буде викликано toRoute(), щоб згенерувати URL. Наприклад: ['site/index'] , ['post/index', 'page' => 2]. У розділі toRoute() докладно описано як задавати роут;
  • Рядок, що починається з @, буде оброблена як псевдонім. Повернеться відповідне значення псевдоніма;
  • Порожній рядок: поверне поточну URL-адресу;
  • Звичайний рядок: поверне рядок без змін.

Коли метод заданий другий параметр $scheme (рядок або true ), то згенерований URL буде з протоколом (отриманим з \yii\web\UrlManager::hostInfo). Якщо в $url зазначений протокол, його значення буде замінено.

Починаючи з версії 2.0.3, ви можете використовувати yii\helpers\Url::current(), щоб створювати URL на основі поточного запрошеного роуту та його GET-параметрів. Ви можете змінити, видалити або додати нові GET-параметри, передавши метод параметр $params . Наприклад:

Запам'ятовування URL #

Існують завдання, коли вам необхідно запам'ятати URL та потім використовувати його в процесі одного або декількох послідовних запитів. Це може бути досягнуто так:

У наступному запиті ми можемо отримати збережену URL-адресу таким чином:

Перевірити відносність URL #

Щоб перевірити відносний URL чи ні (наприклад, якщо він не міститьсяінформації про хост), ви можете використовувати наступний код: