如何在 Yii2 视图中更改数组的 select 选项中的值?
How to change value in the select option of an array in the Yii2 view?
我使用 Yii2 Framework 并且我为 'Ordine' 列设置了这个数组过滤器:
[
'attribute' => 'Ordine',
'filterType' => GridView::FILTER_SELECT2,
'filter' => ArrayHelper::map($ordine_nome,'id','ordine'),
'filterWidgetOptions'=>['pluginOptions'=>['allowClear'=>true]],
'filterInputOptions'=>['placeholder'=>'Tutti...'],
'label' => "Ordine",
'width' => '2%',
],
现在,数组是这样构建的:
$ordini=Elenchi::find()->asArray()->orderby(['Ordine' => SORT_ASC])->all();
foreach($ordini as $l){
$ordine_nome[] = ['id'=>$l['Ordine'],'ordine'=>$l['Ordine']];
}
一切正常。但是现在我想更改数组 select 选项中的值。例如,如果值为 'OFMCap',在数组 selection 中我想显示 'OFMCap - Ordo fratrum minorum capuccinorum'。目前各种 selection 仅显示首字母缩略词(例如 OFMCap 等....)
谁能帮我建立这种类型的搜索?
非常感谢,希望能说清楚
您为 ID 和描述映射了同一列
假设您的 Elenchi 模型至少包含两列 ordine 和 description
值:
ordine description
----- -----------
OFMCap, Ordo fratrum minorum capuccinorum
所以 find() return(至少)这两个值的集合
$ordini=Elenchi::find()->asArray()->orderby(['Ordine' => SORT_ASC])->all();
那么你应该准备你的数组
foreach($ordini as $l){
$ordine_nome[] = ['id'=>$l['ordine'],'description'=>$l['description']];
}
你映射为
'filter' => ArrayHelper::map($ordine_nome,'id','description'),
我对 db attribure 使用小写名称 .. 所以 manage/adapted 大小写符合您的需要
但是如果你直接需要 map 。你可以对 map() 的数组结果进行操作
$myMap = ArrayHelper::map($ordine_nome,'id','description'),
$myMap['OFMCap'] = 'OFMCap - Ordo fratrum minorum capuccinorum';
'filter' => $myMap,
我使用 Yii2 Framework 并且我为 'Ordine' 列设置了这个数组过滤器:
[
'attribute' => 'Ordine',
'filterType' => GridView::FILTER_SELECT2,
'filter' => ArrayHelper::map($ordine_nome,'id','ordine'),
'filterWidgetOptions'=>['pluginOptions'=>['allowClear'=>true]],
'filterInputOptions'=>['placeholder'=>'Tutti...'],
'label' => "Ordine",
'width' => '2%',
],
现在,数组是这样构建的:
$ordini=Elenchi::find()->asArray()->orderby(['Ordine' => SORT_ASC])->all();
foreach($ordini as $l){
$ordine_nome[] = ['id'=>$l['Ordine'],'ordine'=>$l['Ordine']];
}
一切正常。但是现在我想更改数组 select 选项中的值。例如,如果值为 'OFMCap',在数组 selection 中我想显示 'OFMCap - Ordo fratrum minorum capuccinorum'。目前各种 selection 仅显示首字母缩略词(例如 OFMCap 等....)
谁能帮我建立这种类型的搜索? 非常感谢,希望能说清楚
您为 ID 和描述映射了同一列
假设您的 Elenchi 模型至少包含两列 ordine 和 description 值:
ordine description
----- -----------
OFMCap, Ordo fratrum minorum capuccinorum
所以 find() return(至少)这两个值的集合
$ordini=Elenchi::find()->asArray()->orderby(['Ordine' => SORT_ASC])->all();
那么你应该准备你的数组
foreach($ordini as $l){
$ordine_nome[] = ['id'=>$l['ordine'],'description'=>$l['description']];
}
你映射为
'filter' => ArrayHelper::map($ordine_nome,'id','description'),
我对 db attribure 使用小写名称 .. 所以 manage/adapted 大小写符合您的需要
但是如果你直接需要 map 。你可以对 map() 的数组结果进行操作
$myMap = ArrayHelper::map($ordine_nome,'id','description'),
$myMap['OFMCap'] = 'OFMCap - Ordo fratrum minorum capuccinorum';
'filter' => $myMap,