Membuat CRUD Daftar Produk Menggunakan Laravel 6

0
49

Sebelum memulai mengikuti tutorial ini pastikan didalam laptop Anda sudah terinstall web server, bisa menggunakan Laragon, XAMPP, Apache2, dan Phpmyadmin atau komponen lainnya sebagai pendukung web server.

Langkah 1. Install Laravel

Install Laravel menggunakan Composer bisa melalui terminal linux atau CMD pada windows.

composer create-project --prefer-dist laravel/laravel myproducts

Pada myproducts bisa Anda ganti menggunakan nama lainnya. Setelah berhasil aktifkan Laravel menggunakan command pada terminal “php artisan serve” (tanpa tanda petik).

Langkah 2. Konfigurasi Database

Buka folder myproducts tadi hasil instalasi laravel dan klik pada file .env dan edit pada bagaian seperti ini.

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=myproducts
DB_USERNAME=admin
DB_PASSWORD=HAbesar2

Anda sesuaikan dengan nama database dan user milik Anda, jika belum punya silahkan buat di phpmyadmin.

Langkah 3. Membuat Migration

Langkah selanjutnya membuat migrasi, bisa Anda buka folder project tadi melalui Visual Studia Code, dan buka terminal melalui menu diatas pada VS Code ini.

Ketik :

php artisan make:migration create products table --create=products

Nanti akan dihasilkan sebuah file dengan nama xxx/create_products_table.php yang berada di folder database/migrations, Anda buka dan hapus isinya ganti dengan script berikut ini, kemudia Save.

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
  
class CreateProductsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('products', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name');
            $table->text('detail');
            $table->timestamps();
        });
    }
  
    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('products');
    }
}

Langkah 4. Membuat struktur database

Buka phpmyadmin, dan buat table menggunakan nama products dan buat struktur database seperti pada gambar ini.

Langkah 5. Menambahkan Route

Buka file web.php pada folder routes hapus script

Route::get('/', function () {
    return view('welcome');
});

ganti dengan

Route::resource('products','ProductController');

kemudian simpan/Save.

Langkah 6. Menambahkan Controller dan Model

Buka terminal dan tambahkan command berikut. Jika ada pertanyaan ketik yes. Menandakan akan dibuatkan juga model Product.php jika belum tersedia.

php artisan make:controller ProductController --resource --model=Product

Nanti akan menghasilkan dua file baru yaitu ProductController.php yang berada di app/Http/Controllers dan model Product.php yang berada di folder app.

Dalam ProductController.php ini akan membuat tujuh metode secara default sebagai metode di bawah ini:

  1. index()
  2. create()
  3. store()
  4. show()
  5. edit()
  6. update()
  7. destroy()

Kemudian copy dan paste script code dibawah ini didalam file ProductController.php.

<?php
     namespace App\Http\Controllers;
     
     use App\Product;
     use Illuminate\Http\Request;

     class ProductController extends Controller
     {
     /** * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */ public function index()
     {
     $products = Product::latest()->paginate(5);
  
        return view('products.index',compact('products'))
            ->with('i', (request()->input('page', 1) - 1) * 5);
    }
   
    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        return view('products.create');
    }
  
    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $request->validate([
            'name' => 'required',
            'detail' => 'required',
        ]);
  
        Product::create($request->all());
   
        return redirect()->route('products.index')
                        ->with('success','Product created successfully.');
    }
   
    /**
     * Display the specified resource.
     *
     * @param  \App\Product  $product
     * @return \Illuminate\Http\Response
     */
    public function show(Product $product)
    {
        return view('products.show',compact('product'));
    }
   
    /**
     * Show the form for editing the specified resource.
     *
     * @param  \App\Product  $product
     * @return \Illuminate\Http\Response
     */
    public function edit(Product $product)
    {
        return view('products.edit',compact('product'));
    }
  
    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \App\Product  $product
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, Product $product)
    {
        $request->validate([
            'name' => 'required',
            'detail' => 'required',
        ]);
  
        $product->update($request->all());
  
        return redirect()->route('products.index')
                        ->with('success','Product updated successfully');
    }
  
    /**
     * Remove the specified resource from storage.
     *
     * @param  \App\Product  $product
     * @return \Illuminate\Http\Response
     */
    public function destroy(Product $product)
    {
        $product->delete();
  
        return redirect()->route('products.index')
                        ->with('success','Product deleted successfully');
    }
}

dan hapus isi pada file Product.php dan ganti dengan script code dibawah ini.

<?php
  
namespace App;
  
use Illuminate\Database\Eloquent\Model;
   
class Product extends Model
{
    protected $fillable = [
        'name', 'detail'
    ];
}

Langkah 7. Menambahkan File Blade

Selanjutnya buatlah sebuah folder baru didalam folder resources/views dengan nama folder products dan didalam folder products buatlah file blade:

  1. layout.blade.php (link script code https://github.com/hadziqmtqn/simple-product/blob/master/layout.blade.php)
  2. index.blade.php (link script code https://github.com/hadziqmtqn/simple-product/blob/master/index.blade.php)
  3. create.blade.php (link script code https://github.com/hadziqmtqn/simple-product/blob/master/create.blade.php)
  4. edit.blade.php (link script code https://github.com/hadziqmtqn/simple-product/blob/master/edit.blade.php)
  5. show.blade.php (link script code https://github.com/hadziqmtqn/simple-product/blob/master/show.blade.php)

Langkah 8. Terakhir (Opsional)

Jika muncul kesalahan seperti diatas, buka terminal dan jalankan command artisan satu persatu:

  • php artisan key:generate
  • php artisan config:cache
  • php artisan cache:clear

Jika sudah selesai, silahkan akses laravel dengan link http://localhost:8000/products.

Sekian. Terima kasih..
Source : https://www.itsolutionstuff.com/post/laravel-6-crud-application-tutorialexample.html

LEAVE A REPLY

Please enter your comment!
Please enter your name here