MyTetra Share
Делитесь знаниями!
О, смотри-ка какое хорошее место. Дайте два!
Методы генерации html-ссылок в Yii 2
12.12.2017
13:42
Текстовые метки: php, yii 2, html, ссылка, a href, url
Раздел: Компьютер - Программирование - Язык PHP - Yii2

В Yii 2 существует набор HTML-хелперов, которые помогают сгенерировать строку URL или полную ссылку в виде тега <a>.


Подключается хелпер так:


use yii\helpers\Html;


Посмотреть, какие методы поддерживает данный хелпер, можно на странице:


http://www.yiiframework.com/doc-2.0/yii-helpers-html.html



Генерация ссылки в виде тега <a>


Тег <a> можно сгенерировать таким кодом:


<?= Html::a("Главная страница", "/web/"); ?>

<?= Html::a("Статьи", ['post/index']); ?>

<?= Html::a("Статья", ['post/show', 'page'=>5]); ?>


Здесь видно, что вторым параметром можно передавать как строку, так и массив. Правила по которым генерируется URL из массива приведены в следующем разделе.


Но чтобы было понимание, сразу можно показать какие ссылки будет генерировать данный код:


<a href="index.php?r=web">Главная страница</a>

<a href="index.php?r=post%2Findex">Статьи</a>

<a href="index.php?r=post%2Findex&page=5">Статья</a>


Более подробная документация по этому методу:


http://www.yiiframework.com/doc-2.0/yii-helpers-basehtml.html#a()-detail



Генерация строки Url


Второй параметр метода Html::a(), на самом деле, внутри реализации, передается в хелпер Url::to(), и результат его обработки помещается в атрибут href тега <a>. Расположен этот хелпер в следующем пространстве имен:


use yii\helpers\BaseUrl;


Данное пространство имен имеет смысл подключать, если необходимо именно генерировать строку 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', '');


Документация по этому методу находится здесь:


http://www.yiiframework.com/doc-2.0/yii-helpers-baseurl.html#to()-detail




Знаете ли вы, что:

Если вы сами себя считаете гением, то для охлаждения чувства собственного величия стоит посмотреть фильмы про гениев. На торрентах таких фильмов много, есть о чем подумать.



Так же в этом разделе:
 
MyTetra Share v.0.52
Яндекс индекс цитирования