2014-11-04 16 views
8

Bu soruna bir çözüm bulmak için web'i çoktan araştırdım. Zaten Yii2 açılan yolu bu olduğunu biliyorum:

<?php 
use yii\helpers\ArrayHelper; 
use backend\models\Standard; 
?> 

<?= Html::activeDropDownList($model, 's_id', 
     ArrayHelper::map(Standard::find()->all(), 's_id', 'name')) ?> 

Ama $model olmadan açılan yapmak istiyorum ... Bunu yapmanın HERHANGİ yolu var mı?

Teşekkürler!

cevap

18

Ayrıca da kullanabilirsiniz Yii Manual

+1

Bu işe yaramaz, hatayı atar: htmlspecialchars() parametrenin 1 olmasını bekler, dizi parametresi olduğu için verilen dizi: 'Standard :: find() -> all() ' hala bir dizidir ... bunu nasıl atlayabilirim? –

+0

İlk parametre, kontrole atanacak ad, ikincinin değeri ve üçüncü ise öğelerdir. – Barry

+1

Teşekkürler, parametrelerim yanlış atanmıştı! Bu çözüldü ve hızlı yanıtınız için teşekkür ederiz. Daha fazla sorunla karşılaşırsam sizi rahatsız edebilir miyim? P.S: Cevabı 2 dakika içinde kabul edeceğim ... Yani standart zamana ulaştığım zamandır. : D –

2

Bkz

Html::dropDownList()

<?= Html::dropDownList('s_id', null, 
     ArrayHelper::map(Standard::find()->all(), 's_id', 'name')) ?> 

kullanabileceğiniz bu:

public function getAll() 
{ 
    $get = Standard::find()->all(); 
    $result = ArrayHelper::map($get, 'id', 'name'); 
    return $result; 
} 

Ardından açılan:

<?= Html::dropDownList(Standard::getAll(), ['prompt' => '--- select ---']) ?> 

Bu hatayı çözecektir.