menu

Phalcon - CRUD (Read)



Back to phalcon, pada tutorial kemarin kita sudah sampai pada experiment menambahkan mirgation dan seeder secara manual pada project phalcon kita,

Pada tutorial kali ini, kita akan mulai bereksperiment membuat sistem crud, untuk tutorial crud yang pertama yaitu read, yang berarti mendapatkan data dari database yang kemudian menampilkannya pada project kita.

Oke langsung saja kita mulai experimentnya,
Pertama, edit file router.php pada path app/config/ yang satu mengarah pada list user dan yang satu lagi digunakan untuk melihat detail user,

<?php

$router = $di->getRouter();

// Define your routes here
/**
 * Get user lists data by query
 */
$router->addGet(
    "/user",
    [
        "controller"        => "user",
        "action"            => "index"
    ]
);
$router->addGet(
    "/user/{userId}",
    [
        "controller"        => "user",
        "action"            => "show"
    ]
);

$router->addGet(
    "/test",
    [
        "controller"        => "test",
        "action"            => "test"
    ]
);

$router->handle();

Selajutnya, edit file  UserController.php pada path app/controllers/ menjadi seperti ini
<?php

class UserController extends ControllerBase
{
    public function indexAction()
    {
     $users = Users::find();
     $this->view->title = "Phalcon - Users";
     $this->view->users = $users;
     // dd($users);
    }

    public function showAction($userId)
    {
     $conditions = ['userId'=>$userId];
     $user = Users::findFirst([
      'conditions' => 'id=:userId:',
      'bind' => $conditions,
  ]);
     $this->view->title = "Phalcon - User";
     $this->view->user = $user;
     // dd($users);
    }
}

Kemudian, buat file view index.volt pada path app/views/user/ yang digunakan untuk menampilkan list user kemudian isikan code berikut,
{% extends 'layouts/default1.volt' %}

{% block content %}
 <br/>
 Hello codedoct!!!
 <br><br>
 <div class="row">
  <div class="col-md-12">
   user list:
   <br><br>
   <table width="100%">
    <tr>
     <th>Name</th>
     <th>Action</th>
    </tr>
    {% for user in users %}
     <tr>
      <td>{{ user.name }}</td>
      <td><a href="user/{{ user.id }}">show</a></td>
     </tr>
    {% endfor %}
   </table>
   
  </div>
 </div>
{% endblock %}

Terakhir, buat file view show.volt pada path app/views/user yang digunakan untuk menampilkan detail user kemudian isikan code berikut,
{% extends 'layouts/default1.volt' %}

{% block content %}
 <br/>
 User Detail
 <br><br>
 <table width="100%">
  <tr>
   <td>Name</td><td>:</td><td>{{ user.name }}</td>
  </tr>
  <tr>
   <td>Email</td><td>:</td><td>{{ user.email }}</td>
  </tr>
  <tr>
   <td>Address</td><td>:</td><td>{{ user.address }}</td>
  </tr>
 </table>
 <br><br>
 <button onclick="window.location.href='../user'">Back</button>
{% endblock %}

Sehingga tampilannya akan tampak seperti ini,



===DONE!===