我在视图文件的顶部有以下数组:
$order_status = array(
'nocourier' => 'در حال جستجوی پیک',
'accepted' => 'پیک تعیین شد',
'picking' => 'در حال دریافت مرسوله',
'delivered' => 'تحویل داده شد'
);
稍后在页面中,我想在dataprovider表的一列中使用它,如下所示:
[
'label' => 'Status',
'format' => 'raw',
'value' => function ($model, $order_status) {
return Html::a("<div class='col-sm-8 progress' style='padding: 0px; height: 10px;'>
<div class='progress-bar ".$model->status."'></div>
</div><label class='col-sm-4'>".$order_status[$model->status]."</label>", null);
},
'headerOptions' => ['style' => 'text-align: center;'],
'contentOptions' => ['style' => 'width: 300px;']
]
但我得到空标签。我错过了什么?
答案 0 :(得分:2)
可能需要use
将数组的内容传递给匿名函数,例如:
'value' => function ($model) use ($order_status){
return Html::a("<div class='col-sm-8 progress' style='padding: 0px; height: 10px;'>
<div class='progress-bar ".$model->status."'></div>
</div><label class='col-sm-4'>".$order_status[$model->status]."</label>", null);
},
答案 1 :(得分:0)
我不懂这种语言,但我可以做一件错误的事情。 您正在创建一个包含$ order_status的函数。因此,当您调用Value时,您必须传递$ order_status
Value($model , $order_status) for it to work.
我也会把$ order_status参数称为其他东西。