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

Fields with * are required.

Please enter the letters as they are shown in the image above.
Letters are not case-sensitive.