Php 如何在基于Yii2的下拉列表中添加自定义选项?

Php 如何在基于Yii2的下拉列表中添加自定义选项?,php,activerecord,yii,yii2,yii2-advanced-app,Php,Activerecord,Yii,Yii2,Yii2 Advanced App,我可以使用ArrayHelper::map在Yii2中创建基于模型的下拉列表。但我不确定在下拉列表中添加新选择选项的过程。贝娄我已经添加了我的代码- $book_list = Books::find() ->where(['Status' => 1]) ->orderBy('BookName') ->all(); $listBook=ArrayHelper::map($book_list,'Book

我可以使用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的新选项。我使用的是按书名排序,所以其他人将无法排序。它将始终显示在下拉列表的底部/顶部

<option value="">Select</option>
<option value="Biology">Biology</option>
<option value="Mathematics">Mathematics</option>
<option value="Physics">Physics</option>
<option value="Other">Other</option>
我怎样才能做到这一点

请像这样尝试

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

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

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

让我知道它是否有效

它不起作用,但我已经使用SQL查询管理了它。我使用了以下查询-按BookName='Other'ASC、BookName ASC从图书订单中选择BookName;如果我使用上述方法,那么它不会在下拉列表的末尾显示值“Other”。它的末尾只显示一个空选项。