Page 1 of 1
Как в dropDownList() добавить пустое значение? или что-то типа ---- All ----
#1
Posted 15 July 2010 - 09:07 AM
Имеется вот такая конструкция:
<?php echo $form->dropDownList($model, 'type_id', CHtml::listData(Types::model()->findAll(), 'id', 'name')); ?>
Она генерит дропдаунлист из всех значений, но надо добавить пустое значение по умолчанию
Как это сделать правильно?
<?php echo $form->dropDownList($model, 'type_id', CHtml::listData(Types::model()->findAll(), 'id', 'name')); ?>
Она генерит дропдаунлист из всех значений, но надо добавить пустое значение по умолчанию
Как это сделать правильно?
#2
Posted 15 July 2010 - 09:21 AM
echo $form->dropDownList($model, 'type_id', array_merge(array('0' => 'пустое значение'), CHtml::listData(Types::model()->findAll(), 'id', 'name')));
#3
Posted 15 July 2010 - 09:42 AM
Как-то сложнова-то
Вот нашёл другой способ, более кошерный
Есть ещё другие варианты сделать Дропдаунлист малой кровью?
Вот нашёл другой способ, более кошерный
<?php echo $form->dropDownList($model, 'type_id', CHtml::listData(Types::model()->findAll(), 'id', 'name'), array('empty'=>'All Types')); ?>
Есть ещё другие варианты сделать Дропдаунлист малой кровью?
#5
Posted 15 July 2010 - 10:40 AM
omko, on 15 July 2010 - 09:42 AM, said:
Как-то сложнова-то
Вот нашёл другой способ, более кошерный
Есть ещё другие варианты сделать Дропдаунлист малой кровью?
Вот нашёл другой способ, более кошерный
<?php echo $form->dropDownList($model, 'type_id', CHtml::listData(Types::model()->findAll(), 'id', 'name'), array('empty'=>'All Types')); ?>
Есть ещё другие варианты сделать Дропдаунлист малой кровью?
<?php echo $form->dropDownList($model, 'type_id', array(''=>'--all--')+CHtml::listData(Types::model()->findAll(), 'id', 'name')); ?>
#6
Posted 15 July 2010 - 10:53 AM
Quote
Есть ещё другие варианты сделать Дропдаунлист малой кровью?
А чем вам не нравится текущий вариант с "empty"? По-моему, уменьшать код уже некуда, если только не "обёртывать" его в другой метод для более красивого кода в представлении.
#7
Posted 03 May 2011 - 07:39 PM
Делать вывод из модели в представлении это глупо... лучше "Types::model()->findAll()" в контроллере занести в переменную и передать в представление..
#8
Posted 28 August 2011 - 04:00 PM
Sasha, on 15 July 2010 - 09:21 AM, said:
echo $form->dropDownList($model, 'type_id', array_merge(array('0' => 'пустое значение'), CHtml::listData(Types::model()->findAll(), 'id', 'name')));
Твой вариант тоже хорошо, т.к. при использовании array('empty'=>' Выберите производителя') получим значение поля будет пустым, а при слиянии массива получим нуль, что может быть кстати при некоторой логике приложения.
#9
Posted 23 September 2011 - 06:43 AM
я так делаю
именно array(""=>"") + ...
echo $form->dropDownList($model,'status',array(""=>"") + Order::getStatuses());
именно array(""=>"") + ...
#11
Posted 05 October 2012 - 05:53 AM
$form->dropDownList($model, 'entity_id', CHtml::listData(Entity::model()->findAll(), 'id', 'name'), array('empty' => 'Please select'));
Share this topic:
Page 1 of 1

Help














