Cara Membuat CRUD Laravel 8 Untuk Pemula
Apa kabar teman-teman, semoga sehat selalu..., masih bersama kami dengan berbagai tutorial untuk belajar dan menambah pengetahuan. Pada artikel kali ini kita akan membahas tentang Cara Membuat CRUD Laravel 8 Untuk Pemula, Tidak asing lagi kan dengan framework yang satu ini,..
cuss tetap ikuti langkahnya sampai selesai ya....
Pengenalan Laravel 8
Taylor Otwell baru saja merilis Laravel 8 pada tanggal 8 September 2020
Pada versi terbaru ini, laravel 8 memberikan beberapa fitur baru dan dukungan LTS yang keren yang perlu kita ketahui.
Disini teman-teman hanya perlu mengikuti beberapa langkah dasar menggunakan controller, model, route, bootstrap 4 dan blade.
Step #1 - Instal Laravel 8
Ada 2 cara yang dapat dilakukan untuk menginstal laravel 8, pertama dengan Laravel Installer dan yang kedua dengan composer.
Cara 1 : Menggunakan Laravel Installer
Silahkan ketik command di bawah ini untuk menginstal Laravel terlebih dahulu:
composer global require laravel/installer
Kemudian buat project baru dengan ketik command berikut ini :
laravel new laravel8_crud
Cara 2 : Menggunakan Composer
Ini adalah cara termudah yang biasa kita lakukan, cukup dengan ketik perintah berikut ini :
composer create-project --prefer-dist laravel/laravel laravel8_crud
Silahkan enter dan tunggu proses sampai selesai.
Step #2 - Konfigurasi Database
Step kedua ini yaitu membuat dan mengatur database, silahkan aktifkan web server yang kamu gunakan semisal XAMMP, Laragon, MAMP, Nginx dan lain - lain. Kemudian buat database baru bernama db_laravel8_crud , setelah itu buka file .env yang ada di dalam direktori blog/.env.
Ubah nama databse, root, password dll yang sesuai dengan web server teman-teman.
Tips 1 : Konfigurasi Database di XAMPP (Windows/Linux) dan Laragon (Windows)
DB_CONNECTION=mysqlDB_HOST=127.0.0.1DB_PORT=3306DB_DATABASE=db_laravel8_crudDB_USERNAME=rootDB_PASSWORD=
Tips 2 : Konfigurasi Database di MAMP (MAC Os)
DB_CONNECTION=mysqlDB_HOST=127.0.0.1DB_PORT=8889DB_DATABASE=db_laravel8_crudDB_USERNAME=rootDB_PASSWORD=root
Step #3 - Membuat Migration dan Model
Pada tahap studi kasus kali ini kita akan menggunakan table post sebagai contoh. Maka itu kita perlu membuat table sekaligus model-nya terlebih dahulu.
Silahkan ketik command di bawah ini:
php artisan make:model Post --migration
Kemudian buka folder migrations yang ada di direktori laravel8_crud/database/migrations, lalu modifikasi skema field table posts dengan kode di bawah ini:
<?phpuseIlluminate\Database\Migrations\Migration;useIlluminate\Database\Schema\Blueprint;useIlluminate\Support\Facades\Schema;classCreatePostsTableextendsMigration{/*** Run the migrations.** @return void*/publicfunctionup(){Schema::create('posts',function(Blueprint$table) {$table->id();$table->string('title');$table->text('content');$table->timestamps();});}/*** Reverse the migrations.** @return void*/publicfunctiondown(){Schema::dropIfExists('posts');}}
Apakah sudah selesai merubah kodenya teman-teman?
Jika sudah kita lanjutkan untuk menjalankan perintah di bawah ini agar field yang kita buat tadi ter-migrasi ke database:
php artisan migrate
Silahkan tunggu prosesnya sampai selesai.
Step #4 - Membuat Resource Controller
Pada tahap ini kita akan membuat controller untuk mengatur jalanya file, silahkan ketik di command di bawah ini untuk membuat resource controller :
php artisan make:controller PostController --resource
Jika berhasil maka akan terdapat file PostController.php di dalam direktori app/Http/Controller, di dalam PostController.php sudah tersedia beberapa function, yaitu:
- index()
- create()
- store()
- show()
- edit()
- destroy()
Sekarang kita modifikasi isi file tersebut seperti kode berikut:
<?phpnamespaceApp\Http\Controllers;useIlluminate\Http\Request;useApp\Models\Post;classPostControllerextendsController{publicfunctionindex(){$posts= Post::latest()->paginate(5);returnview('posts.index',compact('posts'))->with('i', (request()->input('page', 1) - 1) * 5);}publicfunctioncreate(){returnview('posts.create');}publicfunctionstore(Request$request){$request->validate(['title'=>'required','content'=>'required',]);Post::create($request->all());returnredirect()->route('posts.index')->with('success','Post created successfully.');}publicfunctionshow(Post$post){returnview('posts.show',compact('post'));}publicfunctionedit(Post$post){returnview('posts.edit',compact('post'));}publicfunctionupdate(Request$request, Post$post){$request->validate(['title'=>'required','content'=>'required',]);$post->update($request->all());returnredirect()->route('posts.index')->with('success','Post updated successfully');}publicfunctiondestroy(Post$post){$post->delete();returnredirect()->route('posts.index')->with('success','Post deleted successfully');}}
Jangan lupa untuk Save.
Step #5 - Modifikasi Model
Silahkan buka file app/Model/Post.php dan tambahkan fillable berikut:
<?phpnamespaceApp\Models;useIlluminate\Database\Eloquent\Factories\HasFactory;useIlluminate\Database\Eloquent\Model;classPostextendsModel{useHasFactory;protected$fillable= ['title','content'];}
Step #6 - Menambahkan Route
Sekarang kita tambahkan route untuk mengakses resource controller post, buka route/web.php dan tambahkan kode berikut:
use App\Http\Controllers\PostController;Route::resource('posts', PostController::class);
Simpan.
Step #7 - Membuat Halaman View
Pada step terakhir ini, kita akan membuat beberapa file view menggunakan bootstrap.
Adapun halaman view yang akan kita buat adalah sebagai berikut:
- template.blade.php
- index,blade.php
- create.blade.php
- show.blade.php
- edit.blade.php
Mari kita langsung eksekusi,.. semangat ya...
Silahkan membuat file baru dengan nama template.blade.php di direktori resources/views
Kemudian ketik kdoe berikut ini
<!DOCTYPEhtml><html><head><title>Tutorial CRUD Laravel 8 untuk Pemula - Ilmucoding.com</title><linkrel="stylesheet"href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css"></head><body><divclass="container">@yield('content')</div></body></html>
Kemudian buat folder baru di dalam views bernama posts, dan buat 4 file index.blade.php, create.blade.php, show.blade.php, dan edit.blade.php seperti di bawah ini:
index.blade.php
@extends('template')@section('content')<divclass="row mt-5 mb-5"><divclass="col-lg-12 margin-tb"><divclass="float-left"><h2>Tutorial CRUD Laravel 8 untuk Pemula - Ilmucoding.com</h2></div><divclass="float-right"><aclass="btn btn-success"href="{{ route('posts.create') }}"> Create Post</a></div></div></div>@if ($message = Session::get('success'))<divclass="alert alert-success"><p>{{ $message }}</p></div>@endif<tableclass="table table-bordered"><tr><thwidth="20px"class="text-center">No</th><th>Title</th><thwidth="280px"class="text-center">Action</th></tr>@foreach ($posts as $post)<tr><tdclass="text-center">{{ ++$i }}</td><td>{{ $post->title }}</td><tdclass="text-center"><formaction="{{ route('posts.destroy',$post->id) }}" method="POST"><aclass="btn btn-info btn-sm"href="{{ route('posts.show',$post->id) }}">Show</a><aclass="btn btn-primary btn-sm"href="{{ route('posts.edit',$post->id) }}">Edit</a>@csrf@method('DELETE')<buttontype="submit"class="btn btn-danger btn-sm"onclick="return confirm('Apakah Anda yakin ingin menghapus data ini?')">Delete</button></form></td></tr>@endforeach</table>{!! $posts->links() !!}@endsection
create.blade.php
@extends('template')@section('content')<divclass="row mt-5 mb-5"><divclass="col-lg-12 margin-tb"><divclass="float-left"><h2>Create New Post</h2></div><divclass="float-right"><aclass="btn btn-secondary"href="{{ route('posts.index') }}"> Back</a></div></div></div>@if ($errors->any())<divclass="alert alert-danger"><strong>Whoops!</strong> There were some problems with your input.<br><br><ul>@foreach ($errors->all() as $error)<li>{{ $error }}</li>@endforeach</ul></div>@endif<formaction="{{ route('posts.store') }}"method="POST">@csrf<divclass="row"><divclass="col-xs-12 col-sm-12 col-md-12"><divclass="form-group"><strong>Title:</strong><inputtype="text"name="title"class="form-control"placeholder="Title"></div></div><divclass="col-xs-12 col-sm-12 col-md-12"><divclass="form-group"><strong>Content:</strong><textareaclass="form-control"style="height:150px"name="content"placeholder="Content"></textarea></div></div><divclass="col-xs-12 col-sm-12 col-md-12 text-center"><buttontype="submit"class="btn btn-primary">Submit</button></div></div></form>@endsection
show.blade.php
@extends('template')@section('content')<divclass="row mt-5 mb-5"><divclass="col-lg-12 margin-tb"><divclass="float-left"><h2> Show Post</h2></div><divclass="float-right"><aclass="btn btn-secondary"href="{{ route('posts.index') }}"> Back</a></div></div></div><divclass="row"><divclass="col-xs-12 col-sm-12 col-md-12"><divclass="form-group"><strong>Title:</strong>{{$post->title }}</div></div><divclass="col-xs-12 col-sm-12 col-md-12"><divclass="form-group"><strong>Content:</strong>{{$post->content }}</div></div></div>@endsection
edit.blade.php
@extends('template')@section('content')<divclass="row mt-5 mb-5"><divclass="col-lg-12 margin-tb"><divclass="float-left"><h2>Edit Post</h2></div><divclass="float-right"><aclass="btn btn-secondary"href="{{ route('posts.index') }}"> Back</a></div></div></div>@if ($errors->any())<divclass="alert alert-danger"><strong>Whoops!</strong> There were some problems with your input.<br><br><ul>@foreach ($errors->all() as $error)<li>{{ $error }}</li>@endforeach</ul></div>@endif<formaction="{{ route('posts.update',$post->id) }}" method="POST">@csrf@method('PUT')<divclass="row"><divclass="col-xs-12 col-sm-12 col-md-12"><divclass="form-group"><strong>Title:</strong><inputtype="text"name="title"value="{{ $post->title }}" class="form-control" placeholder="Title"></div></div><divclass="col-xs-12 col-sm-12 col-md-12"><divclass="form-group"><strong>Content:</strong><textareaclass="form-control"style="height:150px"name="content"placeholder="Content">{{ $post->content }}</textarea></div></div><divclass="col-xs-12 col-sm-12 col-md-12 text-center"><buttontype="submit"class="btn btn-primary">Update</button></div></div></form>@endsection
Step #8 - Testing Program
Masih sama dengan laravel versi sebelumnya, untuk menjalankan aplikasi kita harus menjalankan perintah di bawah ini di command:
php artisan serve
Kemudian buka di browser teman-teman dan ketik URL berikut:
http://127.0.0.1.8000/posts
Jika berhasil maka akan tampil halaman seperti ini:
Klik tombol Create Post, maka akan muncul halaman seperti di bawah ini
Silahkan teman-teman isi dengan judul dan content yang diinginkan, jika sudah, Klik tombol Submit. Dan untuk menampilkan Detail post bisa teman-teman klik tombol Show pada halaman index,
Hasilnya seperti di bawah ini
Terakhir, ini halaman edit:
Sekian tutorial dari kami tentang CRUD sederhana menggunakan Laravel 8 pada saat ini semoga bermanfaat bagi teman-teman dan tetap semangat terus untuk berlatih. Terima Kasih





Post a Comment