我可以使用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的订单,因此“OTHER”将不在排序中。它将始终显示在下拉列表的底部/顶部。
<option value="">Select</option>
<option value="Biology">Biology</option>
<option value="Mathematics">Mathematics</option>
<option value="Physics">Physics</option>
<option value="Other">Other</option>
我怎样才能做到这一点?
答案 0 :(得分:0)
请尝试这样,
$listBook=ArrayHelper::map($book_list,'BookName','BookName');
$listBook['Other'] = 'Other';
答案 1 :(得分:0)
对不起延迟,以下是正确答案。
$listBook=ArrayHelper::map($book_list,'BookName','BookName');
$listBookNew = array_merge($listBook, array('Other'=>'Other'));
<?= $form->field($model, 'BookName')->dropDownList($listBookNew, [
'prompt' => 'Select'],
['label'=>'']
)?>
让我知道它是否有效