Страница 1 из 1
Не работает список.
Добавлено: 2012.06.15, 10:00
VituSkz
Всем привет. пытался сделать список с выводом из БД. вроде сделал все верно, но вышла ошибка. потом попробовал просто вывести массив:
Код: Выделить всё
<?php echo CHtml::dropDownList($model,'brand',array(1=>'1', 2=>'2')); ?>
но даже так выводит следующую ошибку:
Recoverable error
Object of class SearchForm could not be converted to string
в чем ошибка и как ее лечить ? !
Re: Не работает список.
Добавлено: 2012.06.15, 11:25
anton44eg
для вывода из БД используется activeDropDownList
Re: Не работает список.
Добавлено: 2012.06.15, 12:25
aser
скорее всего вы массив объектов пытаетесь передать, используйте
Код: Выделить всё
CHtml::listData(array_object,field_name,field_value)
Код: Выделить всё
<?php echo CHtml::dropDownList($model,'brand',CHtml::listData(Page::findAllPage(),'id','title')); ?>
Re: Не работает список.
Добавлено: 2012.06.15, 13:19
VituSkz
я делал по примеру блога, который лежит в папке demos и там такая конструкция отлично работает
Код: Выделить всё
<?php echo CHtml::dropDownList($model,'brand',array(1=>'1', 2=>'2')); ?>
aser писал(а):скорее всего вы массив объектов пытаетесь передать, используйте
где в данном случае(пример выше) я передаю массив объектов ?
мне бы разобраться в этом примере, где именно ошибка...
Re: Не работает список.
Добавлено: 2012.06.15, 13:28
slavcodev
VituSkz писал(а):мне бы разобраться в этом примере, где именно ошибка...
Тебе вторым постом ответили.
Почувствуй разницу:
public static string dropDownList(string $name, string $select, array $data, array $htmlOptions=array ( ))
public static string activeDropDownList(CModel $model, string $attribute, array $data, array $htmlOptions=array ( ))
Re: Не работает список.
Добавлено: 2012.06.15, 14:15
VituSkz
не почувствовал разницы..
>>для вывода из БД используется activeDropDownList
мне не надо для БД. мне надо просто массив вывести без БД хотя бы.
Re: Не работает список.
Добавлено: 2012.06.15, 14:51
slavcodev
VituSkz писал(а):не почувствовал разницы..
1) Если нужен просто список, не привязанный к модели используется
dropDownList
пример:
Код: Выделить всё
// $myDropdownName - имя поля формы, $value - выбраное значение, $items - массив пунктов
echo CHtml::dropDownList($myDropdownName, $value, $items)
получим
<select name="my_dropdown_list">
<option value="option1">Пункт 1</option>
<option value="option2">Пункт 2</option>
</select>
2) Если нужен список, привязанный к модели используется
activeDropDownList
пример:
Код: Выделить всё
// $model - модель, $attribute - атрибут модели, $items - массив пунктов
echo CHtml::activeDropDownList($model, $attribute, $items)
получим примерно такое
<select name="Model[attribute]">
<option value="option1">Пункт 1</option>
<option value="option2">Пункт 2</option>
</select>
$items - массив пунктов, например array(0 => 'Пункт 1', 2 => 'Пункт 2',)
так же его можно этот массив получить из таблицы используя модель
Код: Выделить всё
// собираем модели
$models = Users::model()->findAll();
// генерируем массив для списка
$items = CHtml::listData($models, 'id', 'login');
мне казалось что тут все очевидно (
Re: Не работает список.
Добавлено: 2012.06.16, 10:40
VituSkz
спасибо. с этим разобрался. а как сделать, чтобы объекты не переносились на новую строку? например вот такая конструкция:
Код: Выделить всё
<div class="row">
<?php echo CHtml::activeCheckBox($model,'myTovar'); ?>
<?php echo CHtml::activeLabel($model,'myTovar'); ?>
</div>
и все идет с новой строки