DbHelp.ru
Маленький Yii блог
Комментарии
Гость: комент
Гость: wahaha
zolter: Друпал на Yii? ))
nastia: http://drupal.org/
JB: Да там просто ад)) мне всего 3 значения нужно чтобы выпадало, все равно спасибо)...



Сервер Ultima Online - Forest Wars (от создателя данного блога)

"By Example" : CHtml - link()

Рубрика: Перевод Cookbook

Оцените эту статью:

Рейтинг: 0.00 (0)
8 Окт. 2009
Опубликовать в Twitter Написать в Facebook Опубликовать в своем блоге livejournal.com

Yii Framework Blog img http://dbhelp.rucookbookСерия рецентов "By Example" пытается предоставить для разработчиков примеры использования самых распостраненных действий в Yii. Учимся использовать CHtml::link() на примерах!


[+update 8/10/2009]

---

CHtml::link() method

public static string link(string $text, mixed $url='#', array $htmlOptions=array ( ))

Создание линков (ссылок) с использованием CHtml

Пример 1: Ссылка на действие контроллера

<?php echo CHtml::link('Link Text',array('controller/action')); ?>

Результат:

<a href="index.php?r=controller/action">Link Text</a>

 

Пример 2: Ссылка на действие контроллера с дополнительными параметрами

<?php echo CHtml::link('Link Text',array('controller/action',
                                         'param1'=>'value1')); ?>

Результат:

<a href="index.php?r=controller/action&param1=value1">Link Text</a>

 

Пример 3: Ссылка на действие контроллера с большим кол-вом дополнительных параметров

<?php echo CHtml::link('Link Text',array('controller/action',
                                         'param1'=>'value1',
                                         'param2'=>'value2',
                                         'param3'=>'value3')); ?>

Результат:

<a href="index.php?r=controller/action&param1=value1&param2=value2&param3=value3">Link Text</a>

 

Пример 4: Ссылка на действие внутри текущего контроллера

Предположим вы находитесь в PostController/view и хотите перейти в PostController/create. Для этого просто укажите название экшинса без указания контроллера! Если хотите перейти на другой контроллер - используйте примеры указанные выше.

<?php echo CHtml::link('Link Text',array('action')); ?>

 

Пример 5: Ссылка на контроллер от корня

Предположим вы находитесь в модуле и хотите сделать ссылку на корневой контроллер. В этом случае добавьте косую черту в начале строки URL. Это имеет смысл только если вы работаете с модулями

<?php echo CHtml::link('Link Text',array('/controller/action')); ?>

 

Пример 6: Ссылка на действие контроллера в другом модуле

<?php echo CHtml::link('Link Text',array('/module-id/controller/action')); ?>

 

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

<?php echo CHtml::link('Link Text',array('/{$this->module->id}/controller/action')); ?>

 



Если хотите опубликовать этот материал у себя - пожалуйста, разместите ссылку на страницу откуда вы его взяли.
Другие yii статьи:

  1. Александр Макаров на страницах yiiframework.ru опубликовал перевод очень хорошего рецепта. Хочу заметит что материал будет очень полезен для тех, кто ... "Краткий справочник по валидации форм"

  2. Сегодня на главной странице Yii Framework-а появилось интересное сообщение о возможности быстро опробовать уже установленный Yii 1.0.6 в виде ... "Попробуй Yii как VMware образ"

  3. Мы очень рады обьявить о выпуске стабильной версии Yii Framework 1.1.0! next Этот релиз играет важную роль в истории разв ... "Стабильная версия Yii Framework 1.1"

[adm] zolter

Было сказано: Воскресенье, 27 Сентябрь 2009

В пояснение лишь скажу что данный код надо использовать в отображениях. К примеру, для генерации создания ссылок на странице вместо привычных для вас <a href="...">

[guest] RSol

Было сказано: Вторник, 29 Сентябрь 2009

Предлагаю в уроке №4 переделать. :-)

[adm] zolter

Было сказано: Вторник, 29 Сентябрь 2009

хы. кстати да )) сенк )

[adm] zolter

Было сказано: Четверг, 08 Октябрь 2009

Статья обновлена, были добавлены новые примеры в связи с их появлением на eng версии.

Скоро будут готовы такие же статьи по:
CHtml::button()
CHtml::textField()
CHtml::listData()
CHtml::dropDownList()

[guest] Анонимус

Было сказано: Пятница, 09 Октябрь 2009

Пофиксь пожалуйста рсс, неверно эскейпит кавычки в загаловках

[adm] zolter

Было сказано: Пятница, 09 Октябрь 2009

Готово. Спасибо :)

[guest] Гость

Было сказано: Пятница, 09 Октябрь 2009

А как получить только содержимое тега href при генерации ссылки?
Задача - сгенерировать ссылку до контроллера с параметрами и отправить эту ссылку по емейлу.

[adm] zolter

Было сказано: Пятница, 09 Октябрь 2009

Вот так вот:


$this->createUrl('site/category')

или если нужны параметры дополнительные то вот так:

$this->createUrl('site/category', array('id'=>$id))

[guest] Гость

Было сказано: Суббота, 10 Октябрь 2009

Спасибо.

[guest] Гость

Было сказано: Среда, 28 Октябрь 2009

А как получить полный URL с доменом.
Задача сгенерировать URL что бы отправить его EMail'ом.
допустим контроллер и экшен такие: users/approve
параметер 'code' => '12345'

[adm] zolter

Было сказано: Четверг, 29 Октябрь 2009

Первое что в голову пришло это

echo 'http://' . $_SERVER['HTTP_HOST'] . $this->createUrl('users/approve', array('code'=>12345))

[guest] Гость

Было сказано: Пятница, 30 Октябрь 2009

Во. Оказывается есть #this->createAbsoluteUrl(...)

[adm] zolter

Было сказано: Пятница, 30 Октябрь 2009

Спасибо. Забыл про этот метод, тока 1 раз приходилось им пользоваться.

[guest] Гость

Было сказано: Вторник, 10 Ноябрь 2009

А еще тогда вопросик. Как добавить аттрибут class тегу "a"?
Что бы результат работы CHtml::link был такой
<a href="{url}" class="myClass">text</a>

[adm] zolter

Было сказано: Вторник, 10 Ноябрь 2009

Очень просто. За это у нас отвечает парраметр htmlOptions:

echo CHtml::link('test', array('site/index'), array('class' => 'myClass'));


получим

<a class="myClass" href="/site/index">test</a>

[guest] Brakelv

Было сказано: Среда, 30 Декабрь 2009

Не знал, в какой именно раздел обратиться, решил отписаться тут.
Как можно задать title, description, keywords в layouts, при помощи CHtml. А так же как изменять эти значения в контролере?

[guest] Гость

Было сказано: Четверг, 30 Июнь 2011

А как сделать вот так пример <a href="www.foreingsite.ru" /> Метод link такое дает сделать?

Оставить комментарий


Код:
Имя: