Проблема с CHtml::link

Есть два вопроса про CHtml::link

  1. Требуется получить ссылку на главную страницу приложения.

Вариант:


CHtml::link('Главная', array('/'));

дает ссылку на текущий action текущего контроллера, что неправильно.

Меня бы устроила ссылка на значение $_SERVER["HTTP_HOST"].

Как средствами Yii эту ссылку корректно получить?

  1. CHtml::link генерит относительные ссылки: href="/articles/22.htm"

Можно ли его заставить генерить ссылки с явным указанием хоста, т.е. вида: href="http://domen.ru/articles/22.htm"?

Yii::app()->homeUrl

Убери массив во втором параметре


CHtml::link('Главная', '/');

Спасибо, то что нужно! А со вторым вопросом как быть?

Спасибо, работает! Вот еще бы второй вопрос решить… :rolleyes:

Есть еще замечательная функция CController::createAbsoluteUrl. Она вызывается в методах контроллера или во вьюхе, как




$this->createAbsoluteUrl('/');



а в контексте использования CHtml::link - так:




CHtml::link('Главная', $this->createAbsoluteUrl('/'));



Жаль, что параметром Yii нельзя определить — не сильно удобно везде городить эту функцию, плюс в одном проекте хотят длинные урлы (в смысле с http), в другом короткие… Если это засунуть в код, то универсальность несколько страдает.

можно просто расширить CHtml и создать свой ::Линк

Чтобы не создавать лишнюю тему, как создать ссылку на контроллер с параметрами(проще говоря где сейчас находишься), добавив свои параметры?

если правильно понял

CHtml::link(‘сцыль’, Yii::app()->request->requestUri);

или использовать для формирования:

$this->controller->id

$this->action->id

Да, спасибо, то, что нужно