Laravel merupakan salah satu framework PHP yang bersifat Open Source dan mengikuti arsitektur Model-View-Controller (MVC). Saat ini (2018) Laravel sudah mencapai versi 5.6. Di tutorial dasar kali ini, kita akan membuat sebuah CRUD sederhana. Kita akan membuat tabel dasar yang hanya berisi empat kolom, yaitu id, name, created_at, dan updated_at.
Sebelum memulai tutorial ini, laravel harus diinstall dulu. Cara instalasi bisa dilihat di website resminya.
Laravel yang digunakan adalah yang terbaru, yaitu laravel 5.6.
Langkah 1 – Setting Database di .env
Setelah melakukan instalasi, lakukan setting di file .env yang berada di dalam folder utama. Sebelumnya, buat database baru di SQL. Contoh di tutorial ini nama database barunya adalah laravel_indocoder.
Langkah 2 – Membuat Model, File Migration dan tabel Employee
Kita akan membuat sebuah tabel yaitu tabel employee, yang berisi empat kolom, yaitu id, name, created_at, dan updated_at. Tuliskan perintah berikut di dalam terminal :
1 |
php artisan make:model Employee -m |
Secara otomatis akan muncul dua file baru :
- app\Employee.php
- database\migrations\…create_employees_table.php
Selanjutnya, buka create_employees_table.php dan tambahkan kolom ‘name’ di function up() :
1 2 3 4 5 6 7 8 |
public function up() { Schema::create('employees', function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->timestamps(); }); } |
Save, dan migrate tabel dengan perintah berikut :
1 |
php artisan migrate |
Secara otomatis akan muncul 4 buah tabel di database kita :
Langkah 3 – Membuat Form View
Selanjutnya kita akan membuat form view yang akan digunakan ketika menambah Employee. Buat create.blade.php di dalam folder resources/views.
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 28 29 30 31 32 33 34 35 36 |
<!-- create.blade.php --> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Tutorial CRUD Sederhana Laravel 5.6 </title> <link rel="stylesheet" href="{{asset('css/app.css')}}"> <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"> <link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.5.0/css/bootstrap-datepicker.css" rel="stylesheet"> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.5.0/js/bootstrap-datepicker.js"></script> </head> <body> <div class="container"> <h2>Employee List</h2><br/> <form method="post" action="{{url('employees')}}" enctype="multipart/form-data"> @csrf <div class="row"> <div class="col-md-12"></div> <div class="form-group col-md-4"> <label for="Name">Name:</label> <input type="text" class="form-control" name="name"> </div> </div> <div class="row"> <div class="col-md-12"></div> <div class="form-group col-md-4" style="margin-top:10px"> <button type="submit" class="btn btn-success">Submit</button> </div> </div> </form> </div> </body> </html> |
Langkah 4 – Membuat Controller dan Route
Setelah membuat view, yang perlu kita buat selanjutnya adalah controller dan routenya. Sehingga ketika kita membuka url nya, akan diarahkan ke halaman yang diinginkan.
Di terminal, tulis perintah untuk membuat Controller berikut :
1 |
php artisan make:controller EmployeeController --resource |
Dengan memberikan perintah –resource, secara otomatis nanti di dalam EmployeeController.php akan muncul public function yang berhubungan dengan CRUD, seperti create(), update(), store(), show(), destroy().
Controller yang baru dibuat akan muncul di dalam folder app\Http\Controllers.
Selanjutnya kita buka web.php yang berada di dalam folder routes, dan tambahkan kode berikut :
1 |
route::resource('employees','EmployeeController'); |
Kalau kita mau melihat route yang ada, di terminal ketikkan perintah berikut :
1 |
php artisan route:list |
Buka EmployeeController.php yang berada di folder app\Http\Controller dan tambahkan kode di method create() :
1 2 3 4 |
public function create() { return view('create'); } |
Ketik pada terminal
1 |
php artisan serve |
Buka browser dan masukkan url seperti pada gambar berikut :
Langkah 5 – Menyimpan Data ke dalam Database
Untuk melakukan penyimpanan data, masukkan kode ini di dalam EmployeeController.php pada method store() :
1 2 3 4 5 6 7 8 |
public function store(Request $request) { $employee = new Employee(); $employee->name = $request->get('name'); $employee->save(); return redirect('employees')->with('success','Employee has been added'); } |
Jangan lupa untuk menambahkan path model Employee di EmployeeController.php dibawah namespace :
1 |
use App\Employee; |
Buka url localhost:8000/employees/create dan isikan beberapa nama kemudian tekan Submit, maka akan muncul nama tersebut di tabel employees.
Langkah 6 – Membuat List Employee yang Sudah Ditambahkan
Buka EmployeeController.php dan modifikasi public function index() :
1 2 3 4 5 |
public function index() { $employees = Employee::all(); return view('index',compact('employees')); } |
Buat file baru yaitu index.blade.php di dalam folder resources\views.
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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
<!-- index.blade.php --> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>List Employee</title> <link rel="stylesheet" href="{{asset('css/app.css')}}"> </head> <body> <div class="container"> <br /> @if (\Session::has('success')) <div class="alert alert-success"> <p>{{ \Session::get('success') }}</p> </div><br /> @endif <table class="table table-striped"> <thead> <tr> <th>ID</th> <th>Name</th> </tr> </thead> <tbody> @foreach($employees as $employee) <tr> <td>{{$employee['id']}}</td> <td>{{$employee['name']}}</td> <td align="right"><a href="{{action('EmployeeController@edit', $employee['id'])}}" class="btn btn-warning">Edit</a></td> <td align="left"> <form action="{{action('EmployeeController@destroy', $employee['id'])}}" method="post"> @csrf <input name="_method" type="hidden" value="DELETE"> <button class="btn btn-danger" type="submit">Delete</button> </form> </td> </tr> @endforeach </tbody> </table> </div> </body> </html> |
Langkah 7 – Mengedit Employee
Untuk melakukan edit, modifikasi method edit() di dalam EmployeeController.php
1 2 3 4 5 |
public function edit($id) { $employee = Employee::find($id); return view('edit',compact('employee','id')); } |
Dan tambahkan file view baru edit.blade.php di dalam folder resources\views.
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 28 29 30 31 |
<!-- edit.blade.php --> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Laravel CRUD - EDIT </title> <link rel="stylesheet" href="{{asset('css/app.css')}}"> </head> <body> <div class="container"> <h2>Update Employee</h2><br /> <form method="post" action="{{action('EmployeeController@update', $id)}}"> @csrf <input name="_method" type="hidden" value="PATCH"> <div class="row"> <div class="col-md-12"></div> <div class="form-group col-md-4"> <label for="name">Name:</label> <input type="text" class="form-control" name="name" value="{{$employee->name}}"> </div> </div> <div class="row"> <div class="col-md-12"></div> <div class="form-group col-md-12" style="margin-top:10px"> <button type="submit" class="btn btn-success">Update</button> </div> </div> </form> </div> </body> </html> |
Selanjutnya modifikasi method update() yang berada di dalam EmployeeController.php
1 2 3 4 5 6 7 |
public function update(Request $request, $id) { $employee= Employee::find($id); $employee->name=$request->get('name'); $employee->save(); return redirect('employees'); } |
Coba klik Edit, tekan Update kalau sudah selesai :
Langkah 7 – Menghapus Employee
Yang terakhir, kita akan memodifikasi EmployeeController.php untuk menghapus Employee. Caranya sangat mudah, tuliskan kode berikut pada method destroy() :
1 2 3 4 5 6 |
public function destroy($id) { $employee = Employee::find($id); $employee->delete(); return redirect('employees')->with('success','Employee Has Been Deleted'); } |
http://localhost:8000/employees/create
ini buat folder baru (employees) atau bagaimana?
saya coba jalankan urlnya page not found
mohon pencerahannya
terima kasih
Routes/web.php nya sudah ditambahkan resourcenya? route::resource(’employees’,’EmployeeController’);
Aplikasinya udah dijalankan (php artisan serve)?
ok gan, udah beres
kayaknya ada ketinggalan di
use App\Employee;
terima kasih
Sip
gan, kok database ane cuma ada 2 ya , ga 4 ?
Dua tabel apa aja gan? Migration untuk tabel employee nya sudah dibuat di folder database/migrations?
f anyone else stumbles upon this answer like I did but for a different reason, you may check your Laravel DB charset/collation.
I was installing an application (Snipe-IT) and had configured the Laravel database config to use the following:
‘charset’ => ‘utf8mb4’,
‘collation’ => ‘utf8mb4_general_ci’,
Removing mb4 from both strings fixed the issue, although I believe Antonio’s answer is the real solution to the problem.
https://stackoverflow.com/questions/23786359/laravel-migration-unique-key-is-too-long-even-if-specified
gan saya kok enggak bisa migrate ya
Pesan error nya apa ya?
Punya saya tabelnya ga sama,,,, yang muncul tabel user sama employee doang..
Coba diikuti langkah demi langkahnya mas
kegunaan file model di tutorial ini apa ya mas? kan isi nya kosong
Model dibuat untuk menghubungkan aplikasi dengan database mas, di contoh ini supaya sistem laravel nya mengerti bahwa di database ada tabel yang namanya employees, buat akses ke tabel itu, digunakan model Employee.
Gan,kok habis migrate hanya muncul 2 table di database saya? bukan 4
Tabel apa saja yang tidak muncul?
kalau di punyaku employees sama password_reset gan itu kenapa gan ?
mohon pencerahannya
Bisa lebih dijelasin lagi errornya dimana? Thanks
Gan kalo saya pengen nyimpen file asset kayak javascript, bootstrap dll itu di dalam folder, nyimpennya dimana ya gan ? jadi supaya saya ga harus connect internet buat dapetin tampilan view yang kayak gitu ?
Ditaro di direktori public gan. Link-kan css atau jsnya kesitu. Kalau gak harus connect internet berarti di download aja filenya, jangan pake cdn.
Terima kasih sangat membantu sekali 🙂
Terima kasih kak, saya sudah bisa buat CRUD sederhana .
“Missing required parameters for [Route: employees.edit] [URI: employees/{employee}/edit]. (View: C:\wamp64\www\blog\resources\views\index.blade.php)” bagaimana ini gan?????
terimakasih banyak , sangat jelas tutorialnya
Senang bisa ikut membantu
kok punya saya yang terupdate itu table users ya mas . mohon responnya
Terupdate gimana mas?
Ko saya submit. Munculnya gini ya mas
A table was not found
You might have forgotten to run your migrations. You can run your migrations using php artisan migrate.
Pressing the button below will try to run your migrations.
saya udh ikutin stepnya
Migration udah dijalankan? Ketik php artisan migrate di root folder aplikasinya.