Yii2の学習ノート:GridViewとDetailView
Yii2 の GridView と DetailView は、データを展示するために非常に便利な 2 つのウィジェットです。GridView は複数のデータを展示するために使用され、DetailView は単一のデータの詳細を表示するために使用されます。
GridView の使い方はとても簡単で、まずはコントローラーで表示するデータを取得し、ビューに渡します。
public function actionIndex()
{
$dataProvider = new ActiveDataProvider([
'query' => ModelName::find(),
]);
return $this->render('index', [
'dataProvider' => $dataProvider,
]);
}
そして、データを表示するためにビューにGridViewウィジェットを使用します:
<?= GridView::widget([
'dataProvider' => $dataProvider,
'columns' => [
'id',
'name',
'email',
'created_at:datetime',
'updated_at:datetime',
[
'class' => 'yii\grid\ActionColumn',
'template' => '{view} {update} {delete}',
],
],
]) ?>
上述コードでは、dataProviderはGridViewのデータプロバイダーであり、columnsは表示する列を定義しています。その中で、created_atとupdated_atはdatetime形式を使用してデータを表現し、ActionColumnを使用して操作ボタンを表示します。
DetailView の使い方は至って簡単です。コントローラーで表示に必要なデータを取得して、そのデータをビューに渡すだけで済みます。
public function actionView($id)
{
$model = ModelName::findOne($id);
return $this->render('view', [
'model' => $model,
]);
}
ビューにはDetailViewウィジェットを使ってデータを表示します
<?= DetailView::widget([
'model' => $model,
'attributes' => [
'id',
'name',
'email',
'created_at:datetime',
'updated_at:datetime',
],
]) ?>
上記のコードでは、modelはDetailViewのデータモデルで、attributesは表示する属性を定義します。
この簡単な使用方法により、Yii2 でデータを簡単に表示し、対応する操作ボタンと詳細を提供できます。