<Proger/> Про мене
ProProger

Yii2 > Вчимо YII2. #5. Посилання

Автор: / Час публікації: 25/08/2017 13:39

Всім привіт! У сьогоднішньому уроці ми розлянемо, як утворюються посилання в YII2. Посилання - це важлива частина на сайті. Оскільки, посилання відповідають за меню, розділи і багато інших елементів, що потребують переходів на інші сторінки. В YII2 існує спеціальний менеджер посилань, який відповідає за їх правильне створення! Звісно, можна посилання створювати вручну, але, коли ви захочете змінити правила для для створення посилань(Наприклад, SEF. Детальніше про SEF на YII2 в цій статті.)

Отож, щоб створити посилання потрібно звернутись до методу спеціального менеджера 'urlManager' - 'createUrl()'. Розглянемо на прикладі:

Yii::$app->urlManager->createUrl(['site/test','param1'=>'value1','param2'=>'value2'])

Там, де 'site/test' - це назва контроллера і назва дії через слеш відповідно, а 'param1', 'param2' і 'value1', 'value2' - це GET-параметри, які потрібно передати і їх значення відповідно. Цей метод вам поверне таке значення: '/web/index.php?r=site%2Ftest&param1=value1&param2=value2'. Але ж як зробити абсолютне посилання? Можна просто добавити значення '$_SERVER['SERVER_NAME']'. Але в YII2 вже реалізований метод у вже відомому нам менеджері - "createAbsoluteUrl()". Він приймає точно такі ж параметри, як і попередній метод, але утворює абсолютне посилання.

Yii::$app->urlManager->createAbsoluteUrl(['site/test','param1'=>'value1','param2'=>'value2'])

Ось, що поверне цей метод: 'http://site.com/web/index.php?r=site%2Ftest&param1=value1&param2=value2'.

Також в Yii2 існує спеціальний Helper, який також повертає посилання, це 'yii\helpers\Url'. У ньому існує багато методів для роботи з посиланнями. Деякі ми зараз розглянемо, а всі методи можн а знайти на офіційному сайті. Основним методом є 'to()'.

// створює url: /index.php?r=post/index
echo Url::to(['post/index']);

// Створює url з GET-пфраметрами: /index.php?r=post/view&id=100
echo Url::to(['post/view', 'id' => 100]);

// Створює url з якорем: /index.php?r=post/view&id=100#content
echo Url::to(['post/view', 'id' => 100, '#' => 'content']);

// Створює абсольтний url: http://site.com/index.php?r=post/index
echo Url::to(['post/index'], true);

// Створює абсолютний url використовуючи схему https: https://site.com/index.php?r=post/index
echo Url::to(['post/index'], 'https');

Як Ви можете побачити - цей метод має більше можливостей, ніж методи з urlManager. Також тут існує метод 'home()', який повертає відносний шлях до головної сторінки.

echo Url::home()

У цьому уроці я розказав про два способи створення посиланнь в YII2. Надіюсь, цей урок був корисний для Вас. До нових зустрічей!

Посилання:

UrlManager - www.yiiframework.com/doc-2.0/yii-web-urlmanager.html
Url - www.yiiframework.com/doc-2.0/guide-helper-url.html
Створення SEF-посилань в YII2 - pproger.com/post/3
Не забувай написати коментар і поширити посилання в соц. мережах за допомогою кнопок нижче! Дякую за увагу!

Коментарі(0)