// 條件顯示
['attribute' => 'name', 'visible' => Yii::$app->request->get('type') == 1],
// 連結欄位
[
'attribute' => 'order_id',
'value' => fn($m) => Html::a($m->order_id, ['order/view', 'id' => $m->order_id], ['target' => '_blank']),
'format' => 'raw',
],
// 圖片欄位
[
'label' => '頭像',
'format' => ['image', ['width' => 84, 'height' => 84]],
'value' => 'avatar_url',
],
// HTML 渲染
[
'attribute' => 'content',
'value' => 'content',
'format' => 'html', // 或 'raw'
],
[
'class' => 'yii\grid\ActionColumn',
'template' => '{view} {update} {custom}',
'buttons' => [
'custom' => fn($url, $model) => Html::a('自訂', $url, [
'class' => 'btn btn-xs btn-info',
'onclick' => "customAction({$model->id}); return false;",
]),
],
],
[
'attribute' => 'title',
'headerOptions' => ['width' => '300'],
'contentOptions' => ['style' => 'white-space: nowrap; text-overflow: ellipsis; overflow: hidden;'],
],
= GridView::widget([
'dataProvider' => $dataProvider,
'rowOptions' => fn($model, $key, $index) => ['class' => $index % 2 ? 'odd' : 'even'],
'columns' => [...],
]); ?>
| 屬性 | 說明 |
|---|---|
| dataProvider | 資料提供者(ActiveDataProvider/SqlDataProvider/ArrayDataProvider) |
| filterModel | 搜尋模型,啟用欄位過濾列 |
| columns | 欄位設定陣列,支援字串、陣列、閉包、類別名稱 |
| layout | 版面配置:{summary}{items}{pager} |
| pager | 分頁元件設定(LinkPager 預設) |
| sorter | 排序元件設定 |
| caption | 表格標題(輸出 <caption>) |
| tableOptions | table 標籤屬性,如 ['class' => 'table table-striped'] |
format 支援:raw、html、text、ntext、date、time、datetime、email、image、url、boolean、size(Bytes 可讀)、currency。