我认为这是
'columns' => [
['class' => 'yii\grid\SerialColumn'],
[
'attribute' => 'order_delivery_address_city',
'value' => 'address.order_delivery_address_city'
],
显示“1”或“2”或“3”等字段...如何将其更改为
if (address.order_delivery_address_city == '1') {
'value' => 'New-York'
}
答案 0 :(得分:2)
尝试:
'columns' => [
['class' => 'yii\grid\SerialColumn'],
[
'attribute' => 'order_delivery_address_city',
'value' => function($model){
if($model->address->order_delivery_address_city == '1'){
return 'New-York';
}
}
],
答案 1 :(得分:2)
试试这个:
[
'attribute'=>'order_delivery_address_city',
'value'=>function($model){
return $model->order_delivery_address_city=='1' ? 'New-York':'Anything else';
}
],
答案 2 :(得分:1)
它会正常工作。试试这种方式。
'columns' => [
['class' => 'yii\grid\SerialColumn'],
[
'attribute' => 'order_delivery_address_city',
'value' => function($model){
$city_name = City::find()->select(['city_name'])->where(['city_id' => $model->order_delivery_address_city])->one();
return $city_name ? $city_name->city_name:'None';
},
],

它会查看城市表,并搜索单个记录以匹配 order_delivery_address_city 中包含的 city_id ,并返回相应的 city_name 即可。如果找不到匹配的记录,则返回无。