Tutorial Membuat CRUD di Adonis JS #3 : Input Data ke Database


Fika Ridaul Maulayya
I'm Fika Ridaul Maulayya, a Full-Stack Web Developer, Content Creator and CO-Founder Santri Koding. I share everything i know with Article, Screencasts and E-Books at SantriKoding.com

Tutorial Membuat CRUD di Adonis JS #3 : Input Data ke Database - Halo teman-teman semuanya, diartikel sebelumnya kita sudah membahas cara menampilkan data dari database di Adonis JS.

Di artikel kali ini kita semua akan belajar bagaimana cara memasukkan data atau input data ke dalam database dengan Adonis JS.

Langsung saja kita mulai, sekarang silahkan teman-teman buka file PostController.js dan tambahkan 2 fungsi berikut ini di dalam class PostController :

create({ request, response, view }) {
  return view.render('posts.create')
}

async store({ request, response, view, session }) {
  const post = new Post()

  post.title    = request.input('title')
  post.content  = request.input('content')
  await post.save()

  session.flash({ notification: 'Data Berhasil Disimpan!' })
  return response.route('posts.index')

}

Jika kita perhatikan, kita sudah menambahkan 2 fungsi baru dengan nama create dan store, fungsi create kita gunakan untuk merender sebuah view. Dan fungsi store kita gunakan untuk mentimpan data hasil request dari form.

Jika file PostsController.js ditulis dengan lengkap, kurang lebih seperti berikut ini :

'use strict'

const Post = use('App/Models/Post')

class PostController {

  async index({ request, response, view }) {
    const posts = await Post.all()

    return view.render('posts.index', { posts: posts.rows })
  }

  create({ request, response, view }) {
    return view.render('posts.create')
  }

  async store({ request, response, view, session }) {
    const post = new Post()

    post.title    = request.input('title')
    post.content  = request.input('content')
    await post.save()

    session.flash({ notification: 'Data Berhasil Disimpan!' })
    return response.route('posts.index')

  }

}

module.exports = PostController

Setelah kita berhasil membuat controller, sekarang kita lanjutkan membuat sebuah view baru untuk menampilkan formnya.

Silahkan jalankan perintah dibawah ini untuk membuat view baru :

adonis make:view posts/create 

Perintah diatas, akan membuat sebuah file view baru dengan nama create.edge di dalam folder resources/views/posts.

Silahkan buka file create.edge dan masukkan kode dibawah ini :

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
  <title>Data Posts</title>
</head>
<body>

<div class="container" style="margin-top: 80px">
  <div class="row">
    <div class="col-md-12">
      <div class="card">
        <div class="card-header">
          TAMBAH POSTS
        </div>
        <div class="card-body">
          <form action="{{ route('posts.store') }}" method="POST">
            {{ csrfField() }}
            <div class="form-group">
              <label>TITLE</label>
              <input class="form-control" type="text" name="title" placeholder="Masukkan Judul Post">
            </div>
            <div class="form-group">
              <label>CONTENT</label>
              <textarea class="form-control" name="content"rows="5" placeholder="Masukkan Content Post"></textarea>
            </div>
            <div class="form-group">
              <button type="submit" class="btn btn-md btn-success">SIMPAN</button>
            </div>
          </form>
        </div>
      </div>
    </div>
  </div>
</div>

<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>
</body>
</html>

Terakhir, sekarang kita akan menambahkan route baru, silahkan buka file routes.js di dalam folder start dan tambahkan kode berikut ini :

Route.get('/posts/create', 'PostController.create').as('posts.create’)
Route.post('/posts/store', 'PostController.store').as('posts.store')

Dan sekarang teman-teman bisa membukanya dengan mengetikkan di browser http://localhost:3333/posts/create jika berhasil, kurang lebih tampilannya seperti berikut ini :


Dan silahkan teman-teman mencoba menyimpan data, jika berhasil teman-teman akan melihat kurang lebih tampilannya seperti berikut ini :


Sampai disini pembahasan tentang memasukkan data atau input data ke dalam database dengan Adonis JS, di artikel selanjutnya kita semua akan belajar bagaimana cara edit dan update data ke dalam database dengan Adonis JS.

Terima Kasih


Fika Ridaul Maulayya
I'm Fika Ridaul Maulayya, a Full-Stack Web Developer, Content Creator and CO-Founder Santri Koding. I share everything i know with Article, Screencasts and E-Books at SantriKoding.com
KEBIJAKAN KOMENTAR

Saat memberikan komenatar silahkan memberikan informasi lengkap tentang error, seperti: screenshot, link kode, dll. Baca aturan komentar kami

KOMENTAR