Метод 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'));