Yii Framework Forum: Как в dropDownList() добавить пустое значение? - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Как в dropDownList() добавить пустое значение? или что-то типа ---- All ---- Rate Topic: -----

#1 User is offline   omko 

  • Advanced Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 75
  • Joined: 13-July 10
  • Location:Київ - мать городов русских.

Posted 15 July 2010 - 09:07 AM

Имеется вот такая конструкция:

<?php echo $form->dropDownList($model, 'type_id', CHtml::listData(Types::model()->findAll(), 'id', 'name')); ?>


Она генерит дропдаунлист из всех значений, но надо добавить пустое значение по умолчанию

Как это сделать правильно?
0

#2 User is offline   Sasha 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 304
  • Joined: 14-December 09
  • Location:Киев

Posted 15 July 2010 - 09:21 AM


echo $form->dropDownList($model, 'type_id', array_merge(array('0' => 'пустое значение'), CHtml::listData(Types::model()->findAll(), 'id', 'name')));


0

#3 User is offline   omko 

  • Advanced Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 75
  • Joined: 13-July 10
  • Location:Київ - мать городов русских.

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')); ?>




Есть ещё другие варианты сделать Дропдаунлист малой кровью?
0

#4 User is offline   Sasha 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 304
  • Joined: 14-December 09
  • Location:Киев

Posted 15 July 2010 - 09:50 AM

ух ты, надо документацию внимательней читать )
0

#5 User is offline   Dals 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 1
  • Joined: 04-December 08

Posted 15 July 2010 - 10:40 AM

View Postomko, 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')); ?>

0

#6 User is offline   andy_s 

  • Random Member Title
  • Yii
  • Group: Moderators
  • Posts: 1,384
  • Joined: 22-June 09
  • Location:Russia, Kostroma

Posted 15 July 2010 - 10:53 AM

Quote

Есть ещё другие варианты сделать Дропдаунлист малой кровью?

А чем вам не нравится текущий вариант с "empty"? По-моему, уменьшать код уже некуда, если только не "обёртывать" его в другой метод для более красивого кода в представлении.
0

#7 User is offline   delancer 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 3
  • Joined: 24-December 10
  • Location:Ukraine, Donetsk

Posted 03 May 2011 - 07:39 PM

Делать вывод из модели в представлении это глупо... лучше "Types::model()->findAll()" в контроллере занести в переменную и передать в представление..
0

#8 User is offline   usualdesigner 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 1
  • Joined: 02-August 11

Posted 28 August 2011 - 04:00 PM

View PostSasha, 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'=>' Выберите производителя') получим значение поля будет пустым, а при слиянии массива получим нуль, что может быть кстати при некоторой логике приложения.
0

#9 User is offline   Alexandr Dorogikh 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 71
  • Joined: 29-September 09
  • Location:Ukraine, Bila Tserkva

Posted 23 September 2011 - 06:43 AM

я так делаю
echo $form->dropDownList($model,'status',array(""=>"") + Order::getStatuses());

именно array(""=>"") + ...
0

#10 User is offline   Evgeniy Tkachenko 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 3
  • Joined: 19-July 12

Posted 05 October 2012 - 03:09 AM

View PostAlexandr Dorogikh, on 23 September 2011 - 06:43 AM, said:

я так делаю
echo $form->dropDownList($model,'status',array(""=>"") + Order::getStatuses());

именно array(""=>"") + ...


Если так делать, то при multiple=>true первое значение будет всегда выбрано (selected). Лучше использовать 'empty'=>true
0

#11 User is offline   Ivashkin 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 36
  • Joined: 06-July 11

Posted 05 October 2012 - 05:53 AM

$form->dropDownList($model, 'entity_id', CHtml::listData(Entity::model()->findAll(), 'id', 'name'), array('empty' => 'Please select'));

0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users