这是列显示:
'columns' => [
[
'label' => 'Attribute Value-Pair',
'value' => function ($model) {
return $model['attribute_group_name'] . ':' . $model['attribute_name'];
},
],
],
输出结果为:
尺寸:黄色
长度:30
但我希望输出为:Size: Yellow, Length: 30
单行。
答案 0 :(得分:0)
它的布局问题。您可以使用white-space: nowrap
CSS规则来防止单独行中的单词:
'format' => 'raw',
'value' => function ($model) {
$content = "$model->attribute_group_name $model->attribute_name";
return Html::tag('span', $content, ['class' => 'no-br']) ;
},
并添加到CSS:
span.nobr { white-space: nowrap; }
例如,请参阅this question。
或者,如果可以接受,您可以增加此列的最小宽度:
'value' => function ($model) {
return "$model->attribute_group_name $model->attribute_name";
},
'options' => ['class' => 'class-name-for-this-specific-column'],
在CSS中:
.class-name-for-this-specific-column { min-width: 150px; }
答案 1 :(得分:0)
@arogachev's answer将起作用。但是,看起来您的内容属于不同的模型"因此,gridview会在自己的行中打印每个元素,因此同一个表的不同行。
这需要一个自定义解决方案来循环遍历模型数组并单独提取每个属性 - 值对,例如
$attribute_values = [];
foreach ($models as $model) {
$attribute_values[] = $model['attribute_group_name'] . ': ' . $model['attribute_name'];
}
echo implode(", ", $attribute_values);
如果你这样做,你不再需要gridview。