Tutorial CRUD dengan Phalcon framework Part 3 ,Edit data dengan phalcon framework.


Baiklah setelah sebelumnya membahas mengenai menampilkan data pada tutorial crud part 2. Sekarang saya akan membahas cara mengenai edit data dengan phalcon framework.



Telah saya beritahu sebelumnya bahwa saya  memberikan toturial yang dibagi dalam 5 bagian yaitu :

Part 1 : Insert data /Input Data dengan phalcon framework
Part 2 : Menampilkan data dengan phalcon framework
Part 3 : Update data/edit data dengan phalcon framework
Part 4 : Delete data / hapus data dengan phalcon framework
Part 5 : Pencarian dengan phalcon framework

Konsep dari edit data adalah :

1. data akan ditampilkan terlebih dahulu dalam view

2. Didalam view tersebut terdapat link untuk memindahkan kepada halaman edit disertai dengan mengambil ID dari sebuah data  yang akan di filter di controller

3. controller akan mengambil ID dan memfilter ID tersebut lalu akan memparsing data yang difilter kedalam sebuah view baru , dimana view baru adalah sebuah form edit yang akan menampilkan data yang akan di edit


Baiklah langsung saja kita buka file viewData.volt pada folder views/user. lalu kita akan tambahkan link edit yang nantinya kebutuhan untuk mengambil ID tersebut dan akan menampilkan form edit berdasarkan ID yang dipilih.

viewData.volt :
{% for datas in data %}
{% if loop.first %}
<table border=1 align="center">
    <thead>
        <tr>
            <th>Id</th>
            <th>Name</th>
            <th>Email</th>
            <th>Edit</th>
        </tr>
    </thead>
{% endif %}
    <tbody>
        <tr>
            <td>{{ datas.id_user }}</td>
            <td>{{ datas.nama_user }}</td>
            <td>{{ datas.email_user }}</td>
 <td> <a href="{{ url('user/edit/' ~ data.id_user) }}">Edit</a> </td>
        </tr>
    </tbody>
{% if loop.last %}
    </table>
{% endif %}
{% else %}
    No data
{% endfor %}


<a href="{{ url('user/edit/' ~ datas.id_user) }}">Edit</a>

script diatas adalah script untuk mengarah pada controller user dengan method editAction dimana akan ada parameter yang dikirim yaitu ID pada data tersebut.

Oke selanjutnya kita akan tambahkan method edit pada controller UserController.php :
public function editAction($id)
{
  $user = User::findFirstByidUser($id);
  $this->view->id = $user->id_user;
  $this->view->email = $user->email_user;
  $this->view->nama = $user->nama_user;
}


Penjelasan :
$user = User::findFirstByidUser($id);
var $user akan menampung hasil dari filter id_user dalam tabel User berdasakan id yang di dapat dari view sehingga jika dalam query manualnya " select * from user where id_user=$id".

$this->view->id = $user->id_user;
$this->view->email = $user->email_user;
$this->view->nama = $user->nama_user;


Source code diatas digunakan untuk mengambil data dari setiap field yang nantinya akan diparsing ke view setiap fieldnya.


Sehingga file dari UserController.php :
<?php

class UserController extends ControllerBase
{

    public function indexAction()
    {
  
    }
 
 public function createAction()
   {
  $user = new User();
  $user->nama_user = $this->request->getPost("txt_nama");
  $user->email_user = $this->request->getPost("txt_email");
  
  if (!$user->save()) {
   echo "Gagal Disimpan";
  }
  else
  {
   echo "Data Berhasil Disimpan";
  }
  
   }
   
 public function viewDataAction()
    {
  $user = User::find();
  $this->view->data=$user;
    }
 
 public function editAction($id)
 {
  $user = User::findFirstByidUser($id);
  $this->view->id = $user->id_user;
  $this->view->email = $user->email_user;
  $this->view->nama = $user->nama_user;
 }
 
}


Setelah itu kita buat file baru bernama edit.volt didalam folder views/user.
edit.volt:
{{ form('user/update', 'role': 'form') }}
 <input type="hidden" name="txt_id" value=<?php echo $id ?>>
 <label for="name">Nama</label>
 <input type="text" name="txt_nama" value="<?php echo $nama ?>">
      <br>
    <label for="email">Email</label>
 <input type="text" name="txt_email" value="<?php echo $email ?>">
    <br>
    <button type="submit">Save</button>
</form>


Setelah itu kita coba dulu , buka browser anda dan masukan url
http://localhost/phalcon_project/User/viewData , lalu coba klik edit salah satu baris , sehingga seharusnya adalah seperi berikut :

Oke jika sudah berhasil kita lanjut dengan menambhkan method update  pada controller UserController.php :
public function updateAction()
 {
  $id = $this->request->getPost("txt_id");
  $user = User::findFirstByidUser($id);
  $user->nama_user = $this->request->getPost("txt_nama");
  $user->email_user = $this->request->getPost("txt_email");
  if (!$user->save()) {
   echo "Gagal Disimpan";
  }
  else
  {
   echo "Data Berhasil Diupdate";
  }
 }


Sehinggan full script dari UserController.php :
<?php
class UserController extends ControllerBase
{

    public function indexAction()
    {
  
    }
 
 public function createAction()
   {
  $user = new User();
  $user->nama_user = $this->request->getPost("txt_nama");
  $user->email_user = $this->request->getPost("txt_email");
  
  if (!$user->save()) {
   echo "Gagal Disimpan";
  }
  else
  {
   echo "Data Berhasil Disimpan";
  }
  
   }
   
 public function viewDataAction()
    {
  $user = User::find();
  $this->view->data=$user;
    }
 
 public function editAction($id)
 {
  $user = User::findFirstByidUser($id);
  $this->view->id = $user->id_user;
  $this->view->email = $user->email_user;
  $this->view->nama = $user->nama_user;
 }
 
 public function updateAction()
 {
  $id = $this->request->getPost("txt_id");
  $user = User::findFirstByidUser($id);
  $user->nama_user = $this->request->getPost("txt_nama");
  $user->email_user = $this->request->getPost("txt_email");
  if (!$user->save()) {
   echo "Gagal Disimpan";
  }
  else
  {
   echo "Data Berhasil Diupdate";
  }
 }
 
}


Maka jika di jalankan :



Oke baiklah akhirnya tutrial mengenai edit data dengan phalcon framewok sudah selesai dan berhasil
Congrats you're flying with phalcon !!!


Tunggu tutorial selanjutnya mengenai hapus data dengan phalcon framework.

Download file lengkap sampai dengan update data dibawah ini:
Flying !!!

Download Database :
Download Database


Posting Komentar

3 Komentar

  1. mohon bantuannya mas di bagian edit, sudah mengikuti tutorial tetapi malah masuk ke halam yang isinya

    "Congratulations!

    You're now flying with Phalcon. Great things are about to happen!"

    dengan url

    http://localhost/phalcon/User/%3Cbr%20/%3E%3Cb%3ENotice%3C/b%3E:%20%20Undefined%20property:%20Phalcon/Mvc/Model/Resultset/Simple::$id_user%20in%20%3Cb%3EC:/xampp/htdocs/phalcon/app/cache/c__xampp_htdocs_phalcon_app_views_user_viewdata.volt.php%3C/b%3E%20on%20line%20%3Cb%3E18%3C/b%3E%3Cbr%20/%3E/phalcon/user/edit/

    Thanks

    BalasHapus
    Balasan
    1. ubah kodemu mas pada baris ke 18 menjadi :
      href="{{ url('user/edit/' ~ datas.id_user) }}">Edit

      Hapus