Modul Membuat Database Laravel 8
Modul Membuat Database Laravel 8
*"
2. membuat sebuah database melalui PHPMyAdmin misalnya dalam contoh ini database yang
bernama “toko”
3. Selanjutnya ubah konfigurasi database dalam projek laravel pada file .env yang berada pada
folder penjualan/.env menjadi seperti berikut:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=toko
DB_USERNAME=root
DB_PASSWORD=
4. Buat database dengan perintah : php artisan make:migration create_products_table
5. Ubah sintax pada database->migration->create_products_table
public function up()
{
Schema::create('products', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('description');
$table->decimal('price');
$table->string('img_url');
$table->timestamps();
});
6. Ketikkan perintah : php artisan migrate
7. Buatlah folder baru pada file resource->views dengan nama products
8. Buatlah file index.blade.php pada folder products
9. Buat route seperti berikut :
Route::get('/products', function () {
return view('products.index');
});
10. Ubah file index.blade.php menjadi :
<h1>List Products<h1>
<table>
<thead>
<tr>
<th>Name</th>
<th>Description</th>
<th>Price</th>
</tr>
</thead>
<tbody>
<tr>
<td>Celana Boxer</td>
<td>Nyaman Dipakai</td>
<td>Rp. 45.000</td>
</tr>
<tr>
<td>Kaos Oblong</td>
<td>Kualitas Import</td>
<td>Rp. 150.000</td>
</tr>
</tbody>
</table>
11. Tambahkan file php
<h3>{{$subjudul}}</h3>
12. Ubah route menjadi:
Route::get('/products', function () {
$subjudul = 'Katalog Lengkap';
$contoh = 'Tes Aja';
return view('products.index',['subjudul'=> $subjudul,'contoh' => $contoh]);
});
});
15. Kemudian buat logic controller untuk pengolahan data supaya lebih simple, kita buat controller
dengan perintah : php artisan make:controller ProductController
16. Pindahkan function yang ada di route ke dalam ProductController, kemudian function diberikan
nama: index dan tambahkan method public seperti berikut
20. Kita representasikan data kita ke dalam Model , setiap kita membuat table kita buatkan
modelnya,: php artisan make:model Product (ket: penulisan Product pada model diawali huruf
besar tanpa akhiran s yang merupakan penyebutan nama tabelnya)
21. Sekarang kita dapat memanggil model dari controller
22. Ubah sintax pada ProductController, alurnya adalah kita ambil semua data dari table products
dengan menyebut nama modelnya dan masukkan ke dalam sebuah variabel : $Products =
Product::all(); , jangan lupa mengimport modelna : use App\Models\Product;
dan variable Product kita pindahkan ke compact
23. Ubah sintax pada file index.blade.php. untuk memanggil variable Product, karena berupa data
collection maka kita panggil meggunakan perulangan @foreach ($products as $product) dan di
tutup dengan @endforeach
Pembuatan Create
1. Tambahkan link create pada file index.blade.php : <a href="/products/create">Create</a>
ketika di klik tulisan Create maka akan menuju ke suatu routes
2. Maka kita Buat route nya Route::get('/products/create', [ProductController::class,'create']);
4. Kita tambahkan viewnya di folder products kita buat file baru dengan nama crete.blade.php,
alur pembuatannya sama sepeti pebuatan read sebelumnya dengan membuat form sebagai
berikut
7. Supaya tidak muncul error 419 maka di setiap form yang ada di laravel mengharuskan adanya
csrf token di dalam form
8. Untuk dapat dijalankan maka tambahkan function pada file ProductController untuk mengambil
data data yang di inputkan user
public function store(Request $request)
{
Product::create($request->all());
return redirect('/products');
}
Ketika di jalankan lagi maka muncul error berikut
supaya tidak terjadi error tsb maka tambahkan property protected pada file Model Product.php
Kemudian tambahkan form img_urlnya untuk melengkapi form tersebut supaya tidak terjadi
error karena image_url nya tidak boleh null
Img URL : <input type="text" name="img_url"><br>
9. Kemudian ketika form kita jalankan dan di berikan input data maka table product pada database
akan terisi
10. Untuk menmpilkan data pada halaman web maka kita cek di http://localhost:8000/products
11. Supaya tampilan tidak blank dan langsung dapat terlihat di web ketika selesai input form maka
tambahkan sintax pada file ProductController.php
5. Jika kilta klik edit maka muncul not found karena kita belum membuat routes nya
10. Maka ketika kita refresh akan muncul tamoilan seperti berikut
11. Tetapi kita menginginkan kolom kolom tersebut sudah terisi dengan data sesuai id yang
di tuju misalnya id 1, maka di product controller kita parsing produnct dan kita
deklarasikan variable product nya
public function edit($id)
{
$product = Product::find($id);
return view('products.edit', compact(['product']));
}
<h1>Edit Product</h1>
14. Ketika kita clik edit yang manapun maka akan dimunculkan tampilan sesuia dengan id
nya
15. Kemudian untuk tampilan edit kita menginginkan routesnya “/ ” ke id nya
Dan kita gunakan @method PUT
<h1>Edit Product</h1>
16. Maka ketika kita lakukan edit Gelas menjadi Gelas Hias misalnya
Maka ketika kita save akan muncul error berikut
Membuat DELETE
1. Membuat link delete di views index.blade,php dan ling tsb di masukan ke dalm form
tidak menggunakan a href,
<form action="/products/{{$product->id}}"method="POST">
@method('DELETE')
@csrf
<input type="submit" value="delete">
</form>
2. Membuat routes delete
Route::delete('/products/{id}', [ProductController::class,'destroy']);