Yii2 學(xué)習(xí)筆記之 GridView DetailView

小云
102
2023-09-28 11:04:54

Yii2中的GridView和DetailView是兩個(gè)非常實(shí)用的小部件,用于展示數(shù)據(jù)。GridView用于展示多條數(shù)據(jù),而DetailView用于展示單條數(shù)據(jù)的詳細(xì)信息。

GridView的使用非常簡(jiǎn)單,首先需要在控制器中查詢需要展示的數(shù)據(jù),并將數(shù)據(jù)傳遞給視圖:

public function actionIndex()
{
$dataProvider = new ActiveDataProvider([
'query' => ModelName::find(),
]);
return $this->render('index', [
'dataProvider' => $dataProvider,
]);
}

然后,在視圖中使用GridView小部件來(lái)展示數(shù)據(jù):

<?= GridView::widget([
'dataProvider' => $dataProvider,
'columns' => [
'id',
'name',
'email',
'created_at:datetime',
'updated_at:datetime',
[
'class' => 'yii\grid\ActionColumn',
'template' => '{view} {update} {delete}',
],
],
]) ?>

上述代碼中,dataProvider是GridView的數(shù)據(jù)提供者,columns定義了要展示的列。其中,created_at和updated_at使用了datetime格式來(lái)展示數(shù)據(jù),并且使用了ActionColumn來(lái)展示操作按鈕。

DetailView的使用也非常簡(jiǎn)單,同樣需要在控制器中查詢需要展示的數(shù)據(jù),并將數(shù)據(jù)傳遞給視圖:

public function actionView($id)
{
$model = ModelName::findOne($id);
return $this->render('view', [
'model' => $model,
]);
}

然后,在視圖中使用DetailView小部件來(lái)展示數(shù)據(jù):

<?= DetailView::widget([
'model' => $model,
'attributes' => [
'id',
'name',
'email',
'created_at:datetime',
'updated_at:datetime',
],
]) ?>

上述代碼中,model是DetailView的數(shù)據(jù)模型,attributes定義了要展示的屬性。

通過(guò)以上簡(jiǎn)單的使用,我們可以很方便地在Yii2中展示數(shù)據(jù),并提供相應(yīng)的操作按鈕和詳細(xì)信息。

0