#09-Laravel-CRUD

Untuk pembahasan tutorial membuat CRUD dengan laravel, akan kita awali dengan cara membuat CRUD menggunakan query builder dari laravel.

Query Builder bisa kita anggap sebagai fitur untuk menjalankan query database. jadi di sini laravel telah membuat fungsi-fungsi untuk menjalankan query database. misalnya untuk memilih mau menampilkan data pada table apa, kita bisa langsung saja menggunakan fungsi table() pada laravel.

Begitu juga jika kita ingin menampilkan data yang lebih spesifik seperti misalnya kita ingin menampilkan data yang memiliki kriteria tertentu misalnya menampilkan data yang id nya 5. maka kita tinggal menggunakan fungsi where( “id” , “5” ) saja setelah memilih nama tabel nya.

Jadi penulisan query database jadi lebih singkat dan efisien.

Tidak hanya cuma bisa memilih table dan menggunakan fungsi where(). ada juga fungsi lainnya seperti penggunaan JOIN, DISTINCT dan lain-lain.

Pokok nya udah lengkap. teman-teman bisa lihat di sini apa saja yang bisa kita lakukan dengan query builder nya si laravel.

Oke langsung saja kita mulai membuat CRUD Dengan Laravel. kita mulai dulu dengan melakukan konfigurasi database.

Pengaturan Database Pada Laravel

Contoh CRUD yang akan kita buat di sini adalah CRUD untuk data user. jadi di sini kita akan membuat fungsi sebagai berikut :

  1. Menampilkan data dari database dengan laravel
  2. Menginput data ke database dengan laravel
  3. Mengupdate atau mengubah data pada database dengan laravel
  4. Menghapus data dari database dengan laravel

Karena kita akan berurusan dengan database. maka sekarang kita akan melakukan konfigurasi database dulu di laravel.

Silahkan teman-teman baca juga tutorial sebelumnya tentang konfigurasi pengaturan dasar pada laravel.

Seperti yang sudah dijelaskan sebelumnya, untuk mengatur database pada laravel kita bisa mengaturnya pada file .env. letaknya di direktori paling luar. jika tidak ada file .env di project laravel teman-teman, silahkan atur koneksi database nya di belajar_laravel/config/database.php.

Jika teman-teman mengikuti tutorial laravel di malasngoding.com dari bagian ke 1, nama project laravel kita kita buat dengan nama “learning_laravel”.

Sesuaikan dengan database anda.

Mempersiapkan table tba_user

CREATE TABLE `user` (
  `uid` smallint(6) NOT NULL AUTO_INCREMENT,
  `fullname` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `password` varchar(255) NOT NULL,
  `last_update` datetime DEFAULT NULL,
  `upd_by` smallint(6) DEFAULT NULL,
  `last_login` datetime DEFAULT NULL,
  PRIMARY KEY (`uid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Mempersiapkan Database dan Tabel User

Route::get('user', 'UserController@index');

Buat route baru dengan alamat /user pada /routes/web.php

Lalu buat Controller dengan menggunakan command php artisan

php artisan make:controller UserController

Dan karena kita akan menggunakan query builder laravel, maka kita wajib menambahkan perintah berikut pada bagian paling atas.

use Illuminate\Support\Facades\DB;

Sehingga menjadi seperti berikut

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller
{
    public function index(){
        // mengambil data dari table user
    	$user = DB::table('user')->get();
 
    	// mengirim data user ke view index
    	return view('index',['user' => $user]);
    }
}

Perhatikan baris di atas

// mengambil data dari table user
$user = DB::table('user')->get();

Dengan fungsi table() kita menentukan nama table yang ingin di pilih. fungsi get() berguna untuk mengampil data dari table yang di pilih.

Sehingga data yang diambil akan disimpan dalam variabel $user.

Jadi intinya fungsi di atas itu seperti kita menampilkan data dari database dengan query mysql biasa seperti “SELECT * FROM user “.

Selanjut nya kita passing atau kita kirim datanya ke view agar ditampilkan.

// mengirim data pegawai ke view index 
return view('user',['user' => $user]);

Silahkan baca tutorial sebelumnya tentang cara mempassing data dari controller ke view laravel.

Karena kita belum punya view index. maka sekarang kita buat dulu view nya dengan nama user.blade.php.

<!DOCTYPE html>
<html>
<head>
	<title>{{$title}}</title>
</head>
<body>

	<h2>{{config('app.name')}}</h2>
	<h3>{{$title}}</h3>

	<a href="/user/create"> + Tambah User Baru</a>
	
	<br/>
	<br/>

	<table border="1">
		<tr>
			<th>Fullname</th>
			<th>Email</th>
			<th>Last Login</th>
			<th>Last Update</th>
			<th>Action</th>
		</tr>
		@foreach($user as $list)
		<tr>
			<td>{{ $list->fullname }}</td>
			<td>{{ $list->email }}</td>
			<td>{{ $list->last_login }}</td>
			<td>{{ $list->last_update }}</td>
			<td>
				<a href="/user/update/{{ $list->uid }}">Edit</a>
				|
				<a href="/user/delete/{{ $list->uid }}">Hapus</a>
			</td>
		</tr>
		@endforeach
	</table>


</body>
</html>

Buka browser page http://localhost:8000/user

Selanjutnya kita akan membuat method Create, Update, dan Delete, namun sebelum itu kita siapkan form nya terlebih dahulu

Buat file view userform.blade.php dengan isi sbb:

<!DOCTYPE html>
<html>
<head>
	<title>{{@$title}}</title>
</head>
<body>
	<h2><a href="https://ombagoes.com">ombagoes.com</a></h2>
	<h3>Data User</h3>

	<a href="/user"> Back</a>
	
	<br/>
	<br/>
	<form action="{{url()->current()}}" method="post">
		{{ csrf_field() }}
        <table>
            <tr><td>Fullname</td><td>: <input type="text" name="fullname" value="{{@$edit->fullname}}"></td></tr>
            <tr><td>Email</td><td>: <input type="email" name="email" value="{{ @$edit->email }}"></td></tr>
            <tr><td>Password</td><td>: <input type="password" name="password" value="{{ @$edit->password }}"></td></tr>
            <tr><td colspan=2><input name="btnSubmit" type="submit" value="Simpan Data"></td></tr>
        </table>
	</form>

</body>
</html>

Setelah itu kita akan buat methodnya pada UserController.php

Create, Update, Delete

class UserController extends Controller
{
    public function index(){
        $data['title']="User CRUD";
        // mengambil data dari table user
        $data['user']=DB::table('user')->get();
        // mengirim data user ke view index
        return view('user',$data);
    }
    public function create(Request $request){
        if($request->btnSubmit){
            DB::table('user')->insert([
                'fullname' => $request->fullname,
                'email' => $request->email,
                'password' => $request->password,
                'last_update' => date('Y-m-d H:i:s'),
            ]);
            return redirect('/user');
        }
        $data['title']="User Create";
        return view('userform',$data);
    }
    public function update(Request $request, $id){
        if($request->btnSubmit){
            DB::table('user')
                ->where('uid', $id)
                ->update([
                    'fullname' => $request->fullname,
                    'email' => $request->email,
                    'password' => $request->password,
                    'last_update' => date('Y-m-d H:i:s'),
                ]);
            return redirect('/user');
        }
        $data['title']="User Update";
        $data['edit']=DB::table('user')->where('uid', $id)->first();
        return view('userform',$data);
    }
    public function delete($id){
        DB::table('user')->where('uid', '=', $id)->delete();
        return redirect('/user');
    }
}

Buka kembali halaman http://localhost:8000/user

Klik link Tambah User Baru

Masukan data lalu klik tombol Simpan Data

Klik link Edit untuk mengubah data otomatis data form akan terisi sesuai row yang dipilih

Perbarui data lalu klik tombol Simpan Data

Klik tombol Hapus

Data akan kembali kosong

Sumber:
https://www.malasngoding.com/tutorial-crud-laravel/

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>