0

我可以使用 ArrayHelper::map() 在 Yii2 中创建基于模型的下拉列表。但我不确定在下拉列表中添加新选择选项的过程。贝娄我添加了我的代码-

$book_list = Books::find()
            ->where(['Status' => 1])
            ->orderBy('BookName')
            ->all();

$listBook=ArrayHelper::map($book_list,'BookName','BookName');

<?= $form->field($model, 'BookName')->dropDownList($listBook, [
'prompt' => 'Select'], 
['label'=>'']
)?>

它会生成下拉列表,如下所示 -

<option value="">Select</option>
<option value="Biology">Biology</option>
<option value="Mathematics">Mathematics</option>
<option value="Physics">Physics</option>

我想在下拉列表的末尾添加一个名为“OTHER”的新选项。我正在使用 BookName 的顺序,因此“其他”将不在排序范围内。它将始终显示在下拉列表的底部/顶部。

<option value="">Select</option>
<option value="Biology">Biology</option>
<option value="Mathematics">Mathematics</option>
<option value="Physics">Physics</option>
<option value="Other">Other</option>

我怎样才能做到这一点?

4

2 回答 2

0

请尝试这样,

$listBook=ArrayHelper::map($book_list,'BookName','BookName');
$listBook['Other'] = 'Other';
于 2015-04-05T11:44:30.697 回答
0

抱歉耽搁了,下面是正确答案。

$listBook=ArrayHelper::map($book_list,'BookName','BookName');
$listBookNew = array_merge($listBook, array('Other'=>'Other'));
<?= $form->field($model, 'BookName')->dropDownList($listBookNew, [
'prompt' => 'Select'], 
['label'=>'']
)?>

让我知道它是否有效

于 2015-07-06T12:45:21.603 回答