2017-12-30 17 views
1

私は、ビューファイルの先頭に次の配列があります。yii2 dataproviderでカスタムアレイを使用する方法gridView?

$order_status = array(
    'nocourier' => 'در حال جستجوی پیک', 
    'accepted' => 'پیک تعیین شد', 
    'picking' => 'در حال دریافت مرسوله', 
    'delivered' => 'تحویل داده شد' 
); 

を以降のページでは、私は以下のようにデータプロバイダテーブルの列の1の内側にそれを使用したい:

[ 
    '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;'] 
] 

しかし、私は空のラベルを取得します。私は何が欠けていますか?

答えて

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); 
    }, 
+0

私はそれを試してみました: '不明なプロパティを取得しています:admin \ models \ Order :: nocourier'私の注文モデルには外部配列からの' nocourier'がありません – goseo

+0

あなたはコードなし$ model-> nocourierへのアクセスはできませんが、$ order_status [$ model-> status]にはエラーがコード提供と関連していないようです... c – scaisEdge

+0

'$ model-> status'を親divのクラスとそれが動作します。 – goseo

0

私はこの言葉を知らないが、私は間違っているSE 1つの物事ことができます。 $ order_statusを含む関数を作成しています。あなたは$ ORDER_STATUS

Value($model , $order_status) for it to work. 

に合格しなければならない値を呼び出すときに、私はあまりにも他の気にいらないため$ ORDER_STATUSパラメータを呼び出します。

+0

ありがとうAlenしかし、それは私が試みた最初の事だったあなたは質問で見ることができます! – goseo

関連する問題