Yii Framework Forum: А как массив создать в YII? - Yii Framework Forum

Jump to content

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

А как массив создать в YII? заранее простите за глупый вопрос Rate Topic: -----

#1 User is offline   Beginner 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 108
  • Joined: 23-November 09

Posted 09 February 2010 - 12:23 PM

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

вот код:

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


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

#2 User is offline   andy_s 

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

Posted 09 February 2010 - 02:39 PM

По-моему, вы перемудрили с методом getLang().
Вместо language::model()->getLang() попробуйте передать:

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


http://www.yiiframew...listData-detail
1

#3 User is offline   Beginner 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 108
  • Joined: 23-November 09

Posted 10 February 2010 - 05:54 AM

View Postandy_s, on 09 February 2010 - 02:39 PM, said:

По-моему, вы перемудрили с методом getLang().
Вместо language::model()->getLang() попробуйте передать:

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


http://www.yiiframew...listData-detail


Угу получилось :) Спасибо!
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