如何在Yii2视图中改变数组的选择选项的值?



我使用Yii2框架,我有这个数组过滤器的'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']];
}

没关系。但现在我想改变数组选择选项的值。例如,如果值是'OFMCap',在数组选择中我想显示'OFMCap - Ordo fratrum minorum capuccinorum'。目前,各种选择只显示缩略词(例如OFMCap等....)

谁能帮我建立这种类型的搜索?非常感谢,我希望我能说清楚。

您已经为id和描述映射了相同的列

假设您的Elenchi模型包含至少两列顺序和描述值:

ordine      description
-----       -----------
OFMCap,     Ordo fratrum minorum capuccinorum

所以find()返回(至少)这两个值的集合

$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属性名称。因此,管理/调整案例以满足您的需求

但是如果你直接需要map,你可以使用map()

处理数组结果
$myMap = ArrayHelper::map($ordine_nome,'id','description'),
$myMap['OFMCap'] = 'OFMCap - Ordo fratrum minorum capuccinorum';

"过滤"=比;美元关联,

相关内容

  • 没有找到相关文章

最新更新