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:
- index()
- create()
- store()
- show()
- edit()
- update()
- 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:
- layout.blade.php (link script code https://github.com/hadziqmtqn/simple-product/blob/master/layout.blade.php)
- index.blade.php (link script code https://github.com/hadziqmtqn/simple-product/blob/master/index.blade.php)
- create.blade.php (link script code https://github.com/hadziqmtqn/simple-product/blob/master/create.blade.php)
- edit.blade.php (link script code https://github.com/hadziqmtqn/simple-product/blob/master/edit.blade.php)
- 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