Programmer Notes

web client yii 2.0

Instal yii basic

1
composer create-project --prefer-dist yiisoft/yii2-app-basic basic

Create model

Pada latihan ini kita akan membuat tabel baru dengan nama “alarm”. Struktur tabel seperti blok kode berikut.

1
2
3
4
5
6
CREATE TABLE "public"."alarm" (
"id" int2 NOT NULL DEFAULT nextval('alarm_id_seq'::regclass),
"waktu" varchar(255) COLLATE "pg_catalog"."default",
"kamera" varchar(255) COLLATE "pg_catalog"."default",
"snapshot" varchar(255) COLLATE "pg_catalog"."default"
)

Gunakan generator GII untuk membuat model dari tabel “alarm” yang telah dibuat di atas.

Instal HTTP Client Extension for Yii 2

1
php composer.phar require --prefer-dist yiisoft/yii2-httpclient

Controller

Buatlah sebuah controller baru dengan nama “AlarmController.php” pada direktori controllers.

AlarmController.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
...
use yii\data\ArrayDataProvider;
use yii\httpclient\Client;
use yii\helpers\Json;
...

public function actionIndex()
{
$client = new Client();
$response = $client->createRequest()
->setUrl('http://localhost/yiiapi/web/index.php/alarms')
->addHeaders(['content-type' => 'application/json'])
->send();
$data = Json::decode($response->content);
$dataProvider = new ArrayDataProvider([
'allModels' => $data,
'pagination' => [
'pageSize' => 10,
],
]);
return $this->render('index', [
'dataProvider' => $dataProvider,
]);
}
...

View

Buat juga sebuah file view baru “index.php” pada direktori views\alarm\

index.php
1
2
3
4
5
6
7
8
9
10
11
12
...
<?= GridView::widget([
'dataProvider' => $dataProvider,
// 'filterModel' => $searchModel,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'waktu',
'kamera',
'snapshot',
],
]); ?>
...