А как массив создать в YII?

Здравствуйте, в меня проблема, не могу создать нормальный массив.

делаю дроп-даун меню.

вот код:


<?php echo CHtml::beginForm('/index.php?r=menu/admin','GET', array('class'=>'langform', 'name'=>'setlang'));?>

<?php echo 'CHOOSE LANGUAGE: '.CHtml::dropDownList('lang', '1', language::model()->getLang(), array ('onChange' => "document.setlang.submit();"));?>

<?php echo CHtml::endForm();?>

формирую в модели getLang() так:


	public function getLang()

		{	

        $all_type = language::model()->findAll();

		$i=1;

		foreach($all_type as $n=>$model):

		$type[$i] = array($model->short => $model->long);

		$i++;

		endforeach;

		return $type;

		} 

Получаю на выходе вот такой Source естественно:


<form class="langform" name="setlang" action="/index.php?r=menu/admin" method="GET">CHOOSE LANGUAGE: <select onChange="document.setlang.submit();" name="lang" id="lang">

<optgroup label="1">

<option value="eng">English (Base)</option>

</optgroup>

<optgroup label="2">

<option value="rus">Russian</option>

</optgroup>

<optgroup label="3">

<option value="fra">French</option>

</optgroup>

</select></form>

не нравится: <optgroup …></optgroup>

Как сформировать массив в моей модели нормальный?

чтобы было не так:


array(array(name=>value), array(name=>value))  

а вот так:


array( name1=>value1, name2=>value2, ... , nameN=>valueN )

Все перепробовал, может подскажет кто?

По-моему, вы перемудрили с методом getLang().

Вместо language::model()->getLang() попробуйте передать:




CHtml::listData(language::model()->findAll(), 'short', 'long')



http://www.yiiframework.com/doc/api/CHtml#listData-detail

Угу получилось :) Спасибо!