0% menganggap dokumen ini bermanfaat (0 suara)
111 tayangan

Modul Membuat Database Laravel 8

Langkah-langkah membuat CRUD (create, read, update, delete) pada Laravel meliputi pembuatan database, model, controller, dan view. Pertama, membuat database dan migration untuk tabel produk. Kemudian membuat route dan controller untuk menampilkan data (read), menambah data (create), mengubah data (update), dan menghapus data (delete). Terakhir membuat view untuk setiap aksi CRUD.

Diunggah oleh

Karnati
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
111 tayangan

Modul Membuat Database Laravel 8

Langkah-langkah membuat CRUD (create, read, update, delete) pada Laravel meliputi pembuatan database, model, controller, dan view. Pertama, membuat database dan migration untuk tabel produk. Kemudian membuat route dan controller untuk menampilkan data (read), menambah data (create), mengubah data (update), dan menghapus data (delete). Terakhir membuat view untuk setiap aksi CRUD.

Diunggah oleh

Karnati
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 20

1. composer create-project laravel/laravel penjualan "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]);

});

13. Tambahkan sintax <h3>{{$contoh}}</h3> untuk memunculkan variable contoh


14. Alternative di laravel yang lebih singkat jika menggunakan PHP versi terbaru, ubah sintax route:
Route::get('/products', function () {
$subjudul = 'Katalog Lengkap';
$contoh = 'Tes Aja';
return view('products.index', compact([‘subjudul’,’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

17. Ubah sintax pada route dan import namespace nya


18. Kemudian data data berikut akan kita tampilkan ke dalam database

19. Buka php my admin kita tambahkan Data ke dalam table

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']);

3. kemudain kita tambahkan method create pada ProductController


public function create()
{
return view ('products.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

5. Tambahkan property isinya method POST


6. Supaya submit form dapat dijalankan maka tambahkan route dengan method POST
Route::post('/products/create', [ProductController::class,'store']);

Ketika di jalankan akan muncul error berikut

7. Supaya tidak muncul error 419 maka di setiap form yang ada di laravel mengharuskan adanya
csrf token di dalam form

Ketika di jalankan maka muncul lagi error seperti berikut

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

atau dapat juga dengan guarded


Ketika di jalankan muncul error

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

Pembuatan UPDATE dengan fitur Edit menggunakan method


PUT
1. Kita ubah untuk createnya , sehingga ketika kita submit lagsung mengarah ke products
bukan ke products/create
Route::post('/products/create', [ProductController::class,'store']);
Diubah menjadi seperti ini
Route::post('/products', [ProductController::class,'store']);

2. Kemudian di products.createnya juga kita ubah, di form actionnya kita arahkan ke


products
<form action="/products" method="POST">

3. Membuat tombol edit pad products.index


4. Jika kita refresh maka tampilan menjadi seperti berikut

5. Jika kilta klik edit maka muncul not found karena kita belum membuat routes nya

6. Kemudian kita buat routes nya


Route::get('/products/{id}/edit', [ProductController::class,'edit']);
7. Kalau kita refresh muncul eror karena tidak ada ethod edit di productControllernya

8. Kita buat method edit di productControllernya


public function edit($id)
{
return view('products.edit');
}

9. Kemudian buat file baru di folder products dengan nama edit.blade.php


Dan isi view nya seperti ini
<h1>Edit Product</h1>

<form action="/products" method="POST">


@csrf
Name : <input type="text" name="name"><br>
Description : <input type="text" name="description"><br>
Price : <input type="number" name="price"><br>
Img URL : <input type="text" name="img_url"><br>

<input type="submit" value="Save">

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']));
}

12. Kemudian di view edit.blade.php kita tambahkan valuenya

<h1>Edit Product</h1>

<form action="/products" method="POST">


@csrf
Name : <input type="text" name="name" value="{{$product->name}}"><br>
Description : <input type="text" name="description" value="{{$product-
>description}}"><br>
Price : <input type="number" name="price" value="{{$product->price}}"><br>
Img URL : <input type="text" name="img_url" value="{{$product-
>img_url}}"><br>

<input type="submit" value="Save">


13. Ketika kita refresh maka akan muncul isi dari kolom kolom tersebut

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>

<form action="/products/{{$product->id}}" method="POST">


@method('PUT')
@csrf
Name : <input type="text" name="name" value="{{$product->name}}"><br>
Description : <input type="text" name="description" value="{{$product-
>description}}"><br>
Price : <input type="number" name="price" value="{{$product->price}}"><br>
Img URL : <input type="text" name="img_url" value="{{$product-
>img_url}}"><br>

<input type="submit" value="Save">

16. Maka ketika kita lakukan edit Gelas menjadi Gelas Hias misalnya
Maka ketika kita save akan muncul error berikut

17. Maka kita tambahkan routes dan function updatenya


Route::put('/products/{id}', [ProductController::class,'update']);

public function update (Request $request,$id)


{
$product=Product::find($id);
$product->update($request->all());
return redirect('/products');
}

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']);

3. Membuat method destroy di ProductController.php


public function destroy($id)
{
$product = Product::find($id);
$product->delete();
return redirect('/products');
}

Anda mungkin juga menyukai