DbHelp.ru
Маленький Yii блог
Комментарии
Гость: Добрый день. Скиньте пожалуйста исходники на почту kirlai...
Caravus: Спасибо тебе, добрый человек.
Гость: В статье было написано следующее: Поэтому обычно для к...
Гость: Епта gi gi
vinaletna: Строка ob_clean(); в файле CCaptchaAction.php, методах renderImageGD и renderIm...



Сервер 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. С целью легкого интегрирование фреймворка со сторонними библиотеками, разработчики Yii не используют в коде глобальных функций. В Yii все ... "Используем функции быстрого доступа (глобальные функции в Yii)"

  2. Привет всем! Я очень рад видеть вас на страницах своего маленького блога! Спустя целую неделю данные блога получилось частично восстановить... next ... "Блог вернулся!!!"

  3. Странно, каждый день по несколько раз посещаю официальный сайт Yii Фреймворка – и только сегодня заметил новость за 15е ... "Видео урок "Как создать свой блог""

[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 такое дает сделать?

[guest] Гость

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

Если у вас в БД в поле под название 'www' хранятся ссылки, то для отображения самой ссылки и её выполнения код ниже.

echo CHtml::link(CHtml::encode($data->www), $data->www);


А если хотите сделать ссылку с названием чего-либо из того, что есть в вашей БД, то пишите так,
echo CHtml::link(CHtml::encode($data->name), $data->www);

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


Код:
Имя: