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

Tutorial Laravel 8 pt.4 Model, Collection & Controller

Dokumen tersebut membahas tentang penerapan konsep MVC pada framework Laravel dengan memisahkan komponen model, view, dan controller. Langkah-langkahnya adalah membuat model untuk menyimpan dan mengelola data postingan, membuat route untuk mengakses model tersebut, serta menghubungkan antara route dan model untuk mengambil dan menampilkan data postingan.

Diunggah oleh

Ryan Dhika Permana
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 TXT, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
74 tayangan

Tutorial Laravel 8 pt.4 Model, Collection & Controller

Dokumen tersebut membahas tentang penerapan konsep MVC pada framework Laravel dengan memisahkan komponen model, view, dan controller. Langkah-langkahnya adalah membuat model untuk menyimpan dan mengelola data postingan, membuat route untuk mengakses model tersebut, serta menghubungkan antara route dan model untuk mengambil dan menampilkan data postingan.

Diunggah oleh

Ryan Dhika Permana
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 TXT, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 11

>> Cara sebelumnya kurang tepat, karena route hanya digunakan untuk routing saja.

Jika kita
ingin menerapkan MVC, dua proses tadi harus kita pisahkan sesuai dengan
komponennya

>> Kalau kita mau mengerjakan dengan data, kita harus simpan kodingannya di dalam
model. Dan
kalau mau memilih dan menampilkan view, biasanya dilakukan di dalam controller

>> Sekarang kita akan menerapkan konsep MVC dengan memisahkannya ke dalam
komponen2 terpisah

>> Jadi kita akan membuat model, membuat controller dan bagaimana caranya
menggabungkan ketiga
komponen MVC nya

>> Jadi kita buka websitenya kembali, dimana disana kita sudah membuat tiga route
untuk
mengarahkannya ke halaman home, halaman about, dan blog.

>> Jika kita mau menavigasi antar file di dalam laravel menggunakan vsc, itu kalau
mau cepat
dan kita sudah tau nama filenya. Solusinya adalah cukup pencet "ctrl + p" untuk
mencari
nama filenya tinggal kita ketikkan saja nama file yang kita butuhkan

>> Jika kita ingin beri style pada imagenya, maka kita bisa kasi class di
bootstrap dengan
nama img-thumbnail, lalu kita bikin gambarnya lingkaran dengan mengetikkan
rounded-circle

>> Jika sudah, sekarang kita masuk ke bagian blog. Sebenarnya halaman posts kita
tidak ada
masalah, bahkan jika kita klik tiap2 blognya, itu sudah masuk ke masing2
postnya, tapi
yang kita lakukan, masih belum ada databasenya. Jadi kalau kita buka di file
web

>> Datanya masih kita kirim lewat data di viewnya, ini mau sedikit kita perbaiki,
walaupun
kita belum masuk di materi database. Kita akan perbaiki sehingga seolah2 kita
akan
menggunakan sebuah model di dalam laravel. Cara sebelumnya kurang tepat karena
kita
mengulang2, datanya

>> Kalau kita ubah isi dari data pertama yang ada di file web, data kedua juga
harus
kita ubah secara manual jadi sangat merepotkan. Ini akan kita anggap sebagai
model

>> Definisi model ada di dokumentasi laravel tinggal diketik model di search
enginenya ada
di bagian dari Eloquent ORM. Di laravel ada sesuatu yang disebut Eloquent, dia
adalah
sebuah object-relational mapper (ORM) yang membuat kita dapat dengan mudah
berinteraksi
dengan database kita
>> Dengan menggunakan Eloquent ini, setiap tabel di database itu punya sebuah
"Model", agar
kita bisa berinteraksi. Jadi kita punya model yang bentuknya sebuah class di
dalam Model
kita yang model ini nanti bisa kita petakan ke dalam tabel, jadi kita dapat
dengan mudah
memanipulasi tabel menggunakan model ini

>> Mulai dari insert, update, delete ke dalam tabelnya. Pokoknya dia adalah sebuah
class
untuk mengelola tabel di dalam database. Sekarang kan kita tidak bekerja dengan
database.
Jadi kita akan menganggap data array yang kita lihat di dalam post itu kita
anggap
sebagai tabel

>> Cara bikin model, kita bisa menggunakan perintah artisan, jadi kita ketik di
terminal
php artisan make:model (nama modelnya apa), nanti kalau sudah ada tabelnya,
kita bisa
bikin migrationnya. Jadi migration ini untuk menuliskan skema database dan juga
nanti
akan mengenerate menjadi tabel di dalam databasenya

>> Jadi migrasi tidak kita kerjakan dulu, kita akan buat modelnya. Kita cobain
saja dengan
membuka terminal, bisa terminal selain di vsc atau tidak. Atau bisa juga dengan
cara
manual. Dengan membuka folder app, Models, lalu bikinnya dengan cara klik
kanan, klik
new files, lalu bikin file model baru

>> Ada cara kerennya, yaitu jika kita belum menginstall extension di vsc, kita
install dulu
extension yang namanya Laravel Artisan, yang fungsinya membuat kita bisa
mengetikan
perintah yang harusnya kita ketik di terminal, lewat command pallete miliknya
vscode

>> Caranya kita bisa menekan "ctrl + shift + p", lalu kelura seperti search
engine. Ini
adalah command pallete dimana kita bisa mengetikkan perintah2 di vscode. Kita
cukup
mengetikkan artisan, lalu pilih mau perintah yang mana. Kita pilih yang make
model
untuk membuat model

>> Nanti akan ada permintaan untuk menuliskan nama modelnya, karena kita ingin
membuat
model yang akan mengelola data postingan, dan nantinya kedepannya kita juga
akan
bikin model namanya post juga, maka ketikan Post, lalu pencet enter

>> Selanjutnya akan ditanya apakah kita mau bikin migration, factory atau
resource. Karena
kita tidak terhubung dengan database, maka kita pilih no. Bikin migration,
pilih no lagi,
factory no, nanti ada pertanyaan otomatis akan bikin controller juga, kita
pilih no

>> Jika sudah kita lihat di file explorer kita, di dalam folder Model, sekarang
sudah ada
file yang namanya Post.php, dan otomatis dibuatkan syntax use, untuk terhubung
dengan
database nantinya, karena kita belum butuh

>> Jadi syntax yang ada use bisa dihapus dulu, lalu extends ke Modelnya bisa
dihapus juga
dan HasFactory nya juga bisa dihapus. Kita cuman ingin membuat classnya saja.
Jadi kita
punya class post untuk menyimpan data dari postingan kita, sehingga di routes
kita
ini kita tidak perlu menuliskan data postingan kita. Kita hanya fokus di bagian
route
posts dulu, yang digunakan untuk menampilkan semua post

>> Kita bisa cut saja datanya, array dari data posts kita pindahkan ke model Post,
kita
akan bikin sebagai sebuah properties statis untuk sementara agar bisa diakses
dengan
mudah di classnya

>> Caranya adalah kita bisa ketik static lalu nama variablenya apa, misal namanya
blog_post
yang diisi dengan datanya tadi
Misal :
static $blog_posts =
[
[
"title" => "Judul Post Pertama",
"slug" => "judul-post-pertama",
"author" => "Ryan Dhika Permana",
"body" => "Lorem, ipsum dolor sit amet consectetur adipisicing elit.
Voluptatem quos voluptatibus minus velit similique voluptatum, earum culpa minima
laborum, accusamus incidunt, nisi tempora vitae architecto itaque exercitationem
reiciendis nam sed? Porro unde incidunt odio. Iusto facilis perferendis, culpa
nesciunt nihil enim praesentium voluptatem eveniet doloribus quidem minus a, dolore
voluptatibus sed! Quaerat, exercitationem debitis error nostrum numquam magnam
rerum commodi assumenda tenetur voluptas laudantium eum ad fuga quae sequi dolores
quod dolorum. Adipisci odio assumenda neque impedit magni libero quo."
],
[
"title" => "Judul Post Kedua",
"slug" => "judul-post-kedua",
"author" => "Ahmad Azmi Abdurrahim",
"body" => "Lorem ipsum dolor sit amet consectetur adipisicing elit.
Inventore temporibus, id recusandae animi repellendus, expedita, odit voluptatem
omnis accusamus vero ipsum quod quidem doloribus eveniet reiciendis obcaecati!
Commodi quibusdam error, est quis facere molestiae tenetur quod in, nisi id ipsa
repellat repudiandae a eligendi totam tempora aspernatur fugit optio. Nesciunt cum
illo animi, obcaecati deleniti, dolor qui ad molestiae esse, ducimus corporis vitae
numquam voluptas minima ipsum nam sapiente harum aperiam distinctio fugiat quidem.
Perspiciatis cum commodi officia inventore quasi doloremque quae, pariatur
perferendis magni doloribus iusto, ad non dignissimos rerum beatae alias, natus
cupiditate quas et repellat neque consequatur."
]
];
>> Karena kita hanya ingin bisa di akses oleh class Post saja, kita bisa beri
access
modifiernya private. Jadi hal ini nantinya akan tidak kita lakukan jika nanti
datanya
di ambil dari database

>> Ini hanya menyerupai saja. Jika sudah, maka kita kan tetap akan mengambil data
post, supaya
datanya tampil di view, caranya sekarang kita butuh connect ke modelnya. Nanti
kita bakal
bikin sebuah method static. Jadi kita manggil model kita dengan mengetikkan
nama classnya
lalu kita beri methodnya all()
Misal :
"posts" => Post::all()

>> Letakkan syntax tersebut menggantikan di bagian routes get posts. Jadi
ceritanya kita
ingin mengambil dari model sebuah method all yang berfungsi untuk mendapatkan
semua
data postingan. Tetapi di VSC nya menjadi error. Alasannya karena dia tidak
mengetahui
Post itu apa

>> Karena, routes kita belum terhubung ke modelnya. Caranya kita harus
menghubungkannya
lewat use, kita beri tahu bahwa kita akan menggunakan odel di postnya. Caranya
kita
bisa ketikkan saja use, lalu kita ambil dari namespacenya "App\Models\Post;"
Kita bisa
tulis manual seperti itu, Jika kita konek ke satu model, maka kita tulisnya
satu, jika
dua, maka tulisnya dua kali, dst

>> Jika kita nanti butuh banyak model yang digunakan, kita harus bikinnya banyak,
dan
kemungkinan kita akan lupa untuk menuliskan ini, walaupun sudah diingatkan
dengan error

>> Sekarang all() menjadi error, karena method all tidak ada di model Post. Ada
satu
extension VSC untuk mempermudah kita mengelola namespace di Laravel. Yang
namanya PHP
Namespace Resolver

>> Dengan menggunakan ekstensi ini, otomatis akan melakukan import dan expand dari

namespace php secara otomatis, walaupun kita harus klik kanan, lalu klik. tapi
kita
tidak perlu lagi mikirin alamatnya. Jika sudah diinstal, maka jika kita ke
bagian atas
dari routesnya

>> Kita bisa klik kanan dimanapun. Tetapi jika ingin terlihat hasilnya, maka kita
bisa klik
kanan lalu ada pilihan namanya "import all classes", jika kita klik, maka
otomatis akan
ditambahkan
>> Jadi selama kita menggunakan model dll, dia akan menambahkan di bagian atas.
Post model
sudah terhubung, selanjutnya kita butuh method all(). Kita save dulu, lalu ke
model
postnya, kita bikin method all()

>> Sekarang kita bikin methodnya secara static juga, kita bikin public static
function, nama
functionnya adalah all, yang berisi. Kita bisa langsung aja kembalikan data
array yang
ada di variable blog_post nya dengan mengetikkan return, kita tidak bisa
langsung
mengetikkan $blog_post, karena dia static, kita butuh di depannya keyword self
Misal :
public static function all()
{
return self::$blog_posts;
}

>> Kalau dia sebagai properti biasa, kita kan butuhnya this, ini object oriented,
jadi kita
butuh $this-> lalu $blog_posts. Ini jika propertinya biasa. Kalau propertinya
static,
maka kita menggunakan self::

>> Sekarang kita cek file webnya, maka errornya sudah hilang. Dan jika kita
refresh di web
browsernya, maka tampilannya tidak error, tapi sekarang data dari postnya semua
sudah
di ambil dari model. Jika di klik linknya juga tidak error, tetapi kalau di
klik, data
dari postnya tidak mengambil dari model. melainkan ngambil dari route yang ada
slugnya

>> Solusinya adalah kita hapus data yang single postnya, variable new_post juga
kita tidak
butuh, tetapi nanti kita akan pindahkan ke model. Ini untuk mencari posts
sesuai dengan
slugnya. Kita beri komentar dulu

>> Kita inginnya sekarang yang di bagian returnya kita ubah variable new_post nya
agar
mengambil dari method yang ada di model Post juga. Maka kita tulis Post:: yang
method
staticnya misalnya kita bikin find(). kita cari postingan berdasarkan slugnya
Misal :
"post" => Post::find($slug)

>> Ini akan error, karena methodnya belum kita buat. Karena kita bikin dengan ::,
maka kita
butuh method static lagi. Caranya sama seperti sebelumnya, kita bikin method
static
di Model Peduli dengan mengetikkan public static function find() di dalamnya
ada
parameter namanya slug
Misal :
public static function find($slug)
{
}

>> Caranya adalah kita ambil dulu semua blog postnya, baru kita looping. Kita
tidak perlu
duplikat sekarang. Jadi kita bisa ambil aja dengan cara mengetikkan $posts,
semua post
itu ngambil dari self::$blog_posts. Nah ini sudah tertampung disini semua data
array
postnya, tinggal selanjutnya kita cut yang dikomen tadi di routes

>> Lalu pindahkan di bawahnya. Jadi komennya kita buka, sekarang kita ganti
variable
new_post dengan posts, post yang ada di foreach kita ganti dengan p. Lalu di
paling
bawah variable new_post nya kita ganti dan variable postnya di sama dengannya
kita ganti
menjadi p
Misal :
public static function find($slug)
{
$posts = self::$blog_posts;
$post = [];
foreach ($posts as $p) {
if ($p["slug"] === $slug) {
$post = $p;
}
}
}

>> Jadi yang kita lakukan adalah, kita ambil semua postnya lalu kita looping
satu2, nanti
kita representasikan dengan $p, nanti kita lihat, kalau slugnya itu sama dengan
slug
yang kita kirim ke paameter, maka masukkan postingan tersebut ke dalam variable
post.

>> Di akhir baru kita return $post. Jadi $posts adalah postingan yang banyak,
$post = []
adalah postingan yang ketemu, kalau ketemu, kembalikan hasilnya. Kita save dlu,
lalu
websitenya kita refresh maka tampilan tidak error

>> Jika tulisan kedua, kita ganti titlenya menjadi nama kita, maka cukup ubahnya
di
blog post saja, tidak di ubah di semua data, kalau di refresh. Maka tampilan
sudah
berubah

>> Jadi sekarang routesnya sudah rapi. Tidak ada data di routes, karena semestinya
data
ada di model. Jadi model Post ini pura2nya represetasi data blognya yang
nantinya
bisa di ambil dari database atau dari API, lalu kita ambil ke function all()
untuk
dapetin semua datanya. Kalau mau cari satu, ambil dlu semua, baru cari satu2
dengan
looping
>> Jadi inilah alasan kenapa kita mengambil datanya ke dalam model. Selanjutnya
adalah
kita bisa mengubah data yang kita ambil menjadi sebuah yang kita sebut dengan
collection

>> Collection adalah pembungkus untuk sebuah array, yang akan membuat array
menjadi lebih
sakti, maksudnya jadi. Sekarang yang kita punya di model adalah array. Array di
dalam
array, ada array numerik yang di dalamnya ada array asosiatif. Ini adalah array
biasa

>> Kita mau bungkus array tersebut dengan menggunakan collection. Kita bisa ke
dokumentasi
laravel, cari collection di search enginenya. Pada bagian introductionnya. Di
dalam
laravel menyediakan sebuah collection yang merupakan pembungkus dari arrays of
data. Jadi
kalau kita punya array kita bisa membuatnya menjadi collection

>> Nanti dengan menggunakan collection memungkinkan kita bisa menjalankan banya
function.
Misalnya fungsi map. Jadi kalau misalnya kita punya array biasa. Kita bisa
bungkus ke
dalam fungsi yang namanya collect. Maka dia akan merubah yang tadinya array
menjadi
collection

>> Kalau kita scroll ke bawah, di bagian creating collections, ini adalah cara
membuatnya
Misal :
$collection = collect([1, 2, 3]);

>> Fungsi yang bisa digunakan jika kita menggunakan collection adalah jika kita
scroll
kebawah maka ada banyak tulisan garis bawah warna merah. Array kita yang
tadinya array
biasa jadi bisa pakai banyak fungsi ini. Alasan kita harus menggunakan
collection adalah
karena kita butuh fungsi keren yang namanya first atau firstWhere

>> first ini untuk mencari elemen yang pertama, kalau firstWhere ini untuk mencari
elemen
yang pertama ketemu dengan sebuah kondisi, kalau kita butuh yang lain ini masih
banyak
sebetulnya, tapi kita butuh untuk menjadikan collection, karena kita nantinya
tidak
perlu menggunakan loopingan yang ada di dalam fungsi find

>> Cara penulisannya adalh kita tulis saja collect(), di dalam kurungnya isi
variable yang
akan kita gunakan collect
Misal :
return collect(self::$blog_posts);

>> Jika kita refresh di web browsernya, tidak ada perubahan atau error. Karena ini
masih
array, tetapi arraynya jadi lebih keren, tapi ini akan kita pakai ke fungsi
find
>> Jadi post ini tidak lagi ngambil ke self blog_post. Kita akan ambil dari fungsi
all,
supaya yang kita dapatkan di fungsi find sudah jadi collection. Caranya kita
cukup
mengganti self di functionnya menjadi static, karena kalau self itu untuk
properti
static tapi kalau static, itu khusus untuk method static
Misal :
$posts = static::all();

>> Jadi sekarang yang kita dapatkan adalah variable $posts sudah berupa
collection, kalau
seperti ini juga tidak akan berubah atau error pada tampilannya, tapi, karena
dia jadi
collection, maka loopingnya sudah bisa tidak digunakan

>> Jadi tinggal kita beri komen saja atau boleh di hapus. Yang kita mau lakukan
adalah kita
akan return variable posts nya dan kita beri method, misalnya method first(),
kalau
method first digunakan untuk mengambil data yang paling pertama
Misal :
return $posts->first();

>> Begitu dijalankan di web browser, maka jika kita klik link judul pertama, dapet
data
pertamanya, tapi kalau ke link kedua, tetep dapet data pertama

>> Ini bukan yang kita inginkan, tapi ini sudah sangat simple, kita butuhnya
firstWhere(),
artinya ambil satu data yang pertama kali ditemukan dimana slugnya itu sama
dengan
variable slug
Misal :
return $posts->firstWhere('slug', $slug);

>> Artinya, ambil semua post yang bentuknya collection, lalu cari yang pertama
ditemukan
dimana slugnya sama dengan variable slug

>> Jika dijalankan di web browser, maka permasalahan tadi sudah hilang. variable
posts
pada fungsi find di ambil dari self, self di ambil dari data yang paling atas.
Jadi
sekarang kita sudah menggunakan model, meskipun masih sederhana, kita sudah
belajar
collection walaupun masih sangat sederhana, detailnya ada di dokumentasi
laravel semua

>> Sekarang aplikasi kita sudah menerapkan M dan V, tinggal kita terapkan C nya.
Kalau
kita pengen bikin aplikasi kita menerapkan MVC, kita harus perbaiki di bagian
routesnya
Kita ke file web. Yang menangani proses, itu masih routesnya. Nanti sebaiknya
routes itu
kita arahkan ke sebuah controller yang controller itu menangani return2 di
routes
>> Jadi kode return nya bisa kita pindahkan agar dikerjakan oleh controller.
Karena memang
yang namanya controller, dia yang mengendalikan, mau nampilin view apa, ngambil
data
dari model mana, datanya apa. Nah ini tugasnya controller

>> Cara menggunakan controller kita harus bikin dlu. Tapi coba kita lihat di
dokumentasi
laravel car di search engine apa sih itu controller. Di bagian introduction
dijelaskan
daripada kita mendefinisikan semua logic program kita sebagai closures,
closures itu :
function () {
return view('home', [
"title" => "Home"
]);
});

>> Kodingan seperti di atas, daripada kita bikin closures di dalam route file
kita, kita bisa
merapihkan ini menggunakan sebuah controller, jadi daripada kita bikin pake
closure di
route filenya. Kita bikinnya di controller saja. Controller bisa menggabungkan
atau
mengelompokkan request yang serupa, yang saling terkait untuk menangani
logicnya ke dalam
sebuah class

>> Contohnya misal kita mau menangani halaman yang menampilkan semua postingan dan
menangani
single postingan. Itu cocok jadi satu controller, dua2nya cotroller Post.
Caranya kita
bisa bikin sebuah controller, yang tersimpan di Folder App\Http\Controllers\
nama
controllernya, lalu nanti kita bikin class di dalamnya. Classnya biasanya ada
namanya,
lalu

>> Di akhiri dengan controller, jadi kalau tadi kita punya model namanya post,
berarti
controllernya kita punya PostController yang mewarisi semua perilaku dari class
Controller
jadi nanti kita harus tulisin ada extendsnya. Nanti di dalamnya baru kita
mempunyai
sebuah method utnuk menangani tiap2 logicnya. Jadi nanti kita punya 2 method.
Method
pertama untuk menangani semua postingan
Misal :
<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use App\Models\User;

class UserController extends Controller


{

>> Method kedua untuk menangani satu postingan saja, atau single postnya. Lalu
nanti kalau
controllernya sudah jadi, si Routenya udah tidak lagi punya closures, tapi
nanti kita
tulis seperti ini:

Route::get('/user/{id}', [UserController::class, 'show']);

>> Cara bikinny adalah kita bisa pakai artisan. Kalau kita scroll ke bawah sampai
di
bawah tulisan "you may generate", jadi penulisannya di terminal adalah "php
artisan
make:controller lalu nama controllernya"

>> Sekarang kita gunakan kembali command pallete, bisa dengan menekan "ctrl +shift
+ p",
lalu ketik artisan:, kita pilih yang make controller. Nanti diminta nama
controllernya
apa, kita tulis PostController, lalu enter. Lalu nanti ada pilihan mau Basic,
Resource
atau API, kita pilih yang basic saja

>> Kalau resource nanti udah dibikinin untuk insert update deletenya, itu nanti
belakangan
lah, setelah itu, kita masuk ke file controllernya. use dibiarkan dulu,
walaupun kita
gk pake, tapi gk apa2, use Illuminate\Http\Request;, digunakan untuk request
kalau
nanti misalkan kita punya form, kita punya data di URL sebagai request

>> Di dalam class nanti kita mau bikin dua buah method, kalau ini kita pakai
method
public aja
Misal :
public function index()
{

>> Kita kosongkan dlu, karena kita mau ambil isi kodingannya dari web. Kita ambil
yang bagian route get /posts, kita copas ke fungsi index
Misal :
public function index()
{
return view('posts', [
"title" => "Posts",
"posts" => Post::all()
]);
}

>> Jadi nanti isinya adalah return view, lalu tampilkan post, nah ini ada tande
error di
model Post. Artinya, controller ini belum terhubung ke model post. Caranya
adalah kita
gunakan use dlu. Harusnya kita bisa klik kanan, lalau import all classes,
tetapi ada
tulisan gitu setelah ngeklik

>> Sebenernya kita gk liat ada model kita, jadi ini bisa kalian tulis manual
dengan
mengetik use App\Models\Post;. Atau kita bisa klik kanan di tulisan Post, lalu
pilih
expand class
Misal :
use App\Models\Post;

>> Mau milih begitu atau pakai use, sama saja. Tapi ini harusnya kita klik kanan
dia
langsung, baca si. Selanjutnya kita balik ke routesnya. Sekarang kita tidak
lagi pakai
closures, kita langsung arahkan ke controller dengan mengetikan :
Route::get('/posts', [PostController::class, 'index']);

>> Ini harus kita include juga, jika kita scroll ke atas, routes kita sudah
menggunakan
use controller. Kalau belum ada boleh klik kanan, lalu pilih import all classes

>> Jika kita jalankan di web browser, maka tidak error, kalau misalkan nama
methodnya error
Maka dia tidak akan muncul. Jadi harus bener nama methodnya sesuai dengan yang
kita tulis
di controller

>> Sekarang kita buat method berikutnya di controller dengan nama show, untuk
menampilkan
detail dari satu postnya, memiliki parameter variable slug yang berisi yang ada
di route
dengan /posts/{slug}. Kita cut isi dari fungsinya lalu pindahkan ke dalam
method show
Misal :
public function show($slug)
{
return view('post', [
"title" => "Single Post",
"post" => Post::find($slug)
]);
}

>> Routenya kita ganti closurenya atau functionnya dengan controller post juga dan
methodnya
adalah show. Jadi sekarang kita punya 2 buah route yang cuman sebaris
Misal :
Route::get('posts/{slug}', [PostController::class, 'show']);

>> Jika kita jalankan di web browser, maka tidak akan muncul error. Jadi ini
ceritanya di
route kita mau membuat controller dan diarahkannya ke method yang sesuai di
controller

>> Kalau misalnya ada satu hal yang kita coba, kalau misalnya kita mau akses
sebuah slug
yang tidak ada, misal di urlnya kita tulis ketiga, maka akan muncul error.
Error tersebut
akan kita tanganin sekaligus kita akan mengubah data yang kita punya di
modelnya,
kita akan ganti ini ke database

>> Sehingga nanti akan lebih mudah mengelola ketika terjadi kesalahan

Anda mungkin juga menyukai