CHtml::link() CHtml::button() CHtml::textField() CHtml::listData() CHtml::dropDownList()
Метод CHtml::link()
public static string link(string $text, mixed $url='#', array $htmlOptions=array ( )) Генерирует тег Пример 1: Ссылка на определённых экшен контроллера:
<?php echo CHtml::link('Link Text',array('controller/action')); ?>На выходи, получаем HTML:
Link Text Пример 2: Ссылка на экшен с передачей дополнительных параметров:
<?php echo CHtml::link('Link Text',array('controller/action', 'param1'=>'value1')); ?>Код HTML:
Link Text Пример 3: Аналогичен предыдущему, но передаем несколько параметров:
<?php echo CHtml::link('Link Text',array('controller/action', 'param1'=>'value1', 'param2'=>'value2', 'param3'=>'value3')); ?>Код:
Link Text Пример 4: Ссылка, открывающая страницу в новой вкладке:
<?php echo CHtml::link('Link Text',array('controller/action', 'param1'=>'value1'), array('target'=>'_blank'); ?>Код:
Link Text Пример 5: Ссылка, на экшен, внутри одного контроллера:
(предположим что нужно добавить ссылку из PostController/view на PostController/create)
<?php echo CHtml::link('Link Text',array('action')); ?> Пример 6: Ссылка из корневя сайта:
(предположим нужна ссылка из модуля на какой-либо контроллер корневого сайта)
<?php echo CHtml::link('Link Text',array('/controller/action')); ?> Пример 7: Ссылка на экшен модуля:
<?php echo CHtml::link('Link Text',array('/module-id/controller/action')); ?> Пример 8: Ссылка на экшен внутри модуля:
<?php echo CHtml::link('Link Text',array('/{$this->module->id}/controller/action')); ?> Метод CHtml::button()
public static string button(string $label='button', array $htmlOptions=array ( )) Генерирует кнопку. Пример 1: Подключение кнопки к какому-либо экшену контроллера:
<?php echo CHtml::button('Button Text', array('submit' => array('controller/action'))); ?> Код:
Метод CHtml::textField()
public static function textField($name,$value='',$htmlOptions=array())
Генерирует текстовое поле. Пример 1: Генерация пустого поля, с именем
<?php echo CHtml::textField('Text'); ?> Пример 2: Генерация поля с именем и значением:
<?php echo CHtml::textField('Text', 'some value'); ?> Пример 3: Генерация поля с дополнительными HTML параметрами
<?php echo CHtml::textField('Text', 'some value', array('id'=>'idTextField', 'width'=>100, 'maxlength'=>100); ?> Пример 4: Генерация выключенного поля
<?php echo CHtml::textField('Text', 'some value', array('disabled'=>'disabled'); ?> Метод CHtml::listData()
public static function listData($models,$valueField,$textField,$groupField='')
Генерирует данные для dropDownList и listBox в формате $key=>$value Пример 1: Генерация категорий:
<?php /you can use here any find method you think proper to return your data from db/ $models = categories::model()->findAll();
// format models resulting using listData
$list = CHtml::listData($models,
'category_id', 'category_name');
print_r($list);
Вывод HTML:
array("1" => "Arts", "2" => "Science", "3" => "Culture"); Пример 2: Генерация сортированных списков с использованием findAll()
<?php $models = categories::model()->findAll( array('order' => 'category_name'));
$list = CHtml::listData($models,
'category_id', 'category_name');
print_r($list);
Метод CHtml::dropDownList()
public static function dropDownList($name,$select,$data,$htmlOptions=array()) Генерирует выпадающий список Пример 1: Генерация простого выпадающего списка для выбора пола
<?php echo CHtml::dropDownList('listname', $select, array('M' => 'Male', 'F' => 'Female')) Пример 2: Генерация выпадающего списка с пустым элементом
<?php echo CHtml::dropDownList('listname', $select, array('M' => 'Male', 'F' => 'Female'), array('empty' => '(Select a gender)')); Пример 3: Генерация списка с использованием данных из модели:
В модели: public function getGenderOptions(){ return array('M' => 'Male', 'F' => 'Female'); } В представлении: <?php echo CHtml::dropDownList('listname', $select, $model->genderOptions, array('empty' => '(Select a gender')); Пример 4: Использовании данных из базы
// retrieve the models from db $models = categories::model()->findAll( array('order' => 'category_name'));
// format models as $key=>$value with listData $list = CHtml::listData($models, 'category_id', 'category_name'); <?php echo CHtml::dropDownList('categories', $category, $list, array('empty' => '(Select a category'));

Leave a Comment