LARAVEL 7 | Dasar routing dan membuat controller halaman pada Laravel
halo, kembali lagi di basic basic laravel, kali ini kita akan melakukan routing halaman web di laravel 7. sebelumnya saya anggap anda anda sekalian sudah membaca instalasi laravel dan menjalankan projek yang dapat diakses disini.
Oke, pertama saya akan membahas topik topik yang akan kita buat pada projek laravel ini, saya kedepannya akan membuat base aplikasi sistem kasir dasar dengan menggunakan framework laravel dan nantinya akan dihubungkan dengan aplikasi mobile kasir hehe😊.
- membuat view
yang kita buat pada tahap ini adalah halaman vies kemudian routing dari halaman menuju kehalaman lain sekaligus membuat controllernya. Mula mula saya membuat folder yang akan digunakan untuk menyimpan halaman view yang akan kita buat sendiri, folder ini saya beri nama templete yang berisikan base template bootstrap yang akan saya gunakan, nama folder ini bebas ya suka suka anda dalam penamaan hehe.
Didalam folder template ini saya buat file dengan nama theme.blade.php yang digunakan sebagai base dasar dari halaman halaman lain yang kita gunakan
Didalam theme.blade.php saya masukkan kode starter template html dari dokumentasi bootsrap seperti gambar berikut
Lalu kita bisa menuju ke folder routes -> web.php dan kita tambahkan routes yang menuju ke halaman theme yang telah kita buat untuk melihat hasilnya apakah bisa atau tidak
Nah return viewnya diisi dari root folder tempat file theme disimpan, karena saya menyimpan file theme.blade.php didalam folder dengan nama template jadi kita bisa tuliskan kode seperti diatas
Atau tanda titik bisa diganti dengan menggunakan ‘/’ sehingga menjadi ‘template/theme’
Coba akses halaman yang kita buat tadi sesuai dengan url yang kita buat. Disini nama url yang saya buat adalah /theme (nama url ini bebas ya teman teman)
Dan isinya dari halamannya benar hello, world seperti yang kita buat pada file theme.blade.php
Kemudian kita modifikasi theme.blade.php ini agar bisa digunakan sebagai base template oleh halaman lainnya, pertama kita rubah title dari page menyesuaikan nama page yang kita buka, biar title dari halaman webnya selalu hello, world 😊
Dalam tag html title yang sebelumnya terdapat tulisan Hello, world dirubah menjadi @yield(‘disini diisi bebas’) tapi saya isi yang simple dengan nama title-page supaya tidak lupa
Kemudian dibagian body saya hapus tag h1 dan menambahkan syntax @yield(‘container’), dimana nantinya nilai container ini akan digantikan dengan html yang kita buat lainnya, jika dilihat keseluruhan kode programnya akan seperti ini
Selanjutnya saya akan buat halaman beranda atau home yang berisikan daftar barang barang dengan nama index dan berada didalam folder pages.
Didalam index.blade.php kita bisa tambahkan kode dari templating blade yakni @extends(‘nama folder.nama file blade yang kita buat’)
Dalam hal ini saya menggunakan @extends(‘template.theme’) fungsi dari ini adalah meng-extend tampilan file theme.blade.php yang berada didalam folder template
Kemudian tambahkan kode templating blade lainnya bernama section, dengan menuliskan seperti ini :
@section(‘nama section yang akan diganti’, ‘nama section yang menggantikan’)
Jadi tadi saya membuat section di file theme.blade.php dengan nama title-page dan akan saya gantikan dengan Selamat datang, Sistem Kasir
@section(‘title-page, ‘Selamat dating, Sistem Kasir)
Dan tambahkan kode @section baru yang didalamnya terdapat tag table karena saya akan membuat table dihalaman index nanti. Bisa dilihat keseluruhan kode seperti berikut :
Lanjut kita ubah route ke arah halaman theme tadi menjadi ke halaman index :
Dan masukkan url kedalam browser sesuai nama url pada routing yang kalian buat, kalai saya /beranda-kasir. jika sudah anda dapat melihat hasilnya
Jeng jeng halaman beranda dan routing simple sudah bisa dijalankan, selajutnya kita percantik deh halaman berandanya dengan menambahkan navigation bar, disini saya akan menambahkan navigation bar dialam folder template dengan nama navbar.blade.php untuk navbar saya copy saja langsung dari starter navbar yang ada pada bootsrap, bisa dilihat seperti berikut
Kemudian pada halaman view index.blade.php saya menambahkan kode @include(‘nama folder.nama filde blade’) seperti berikut
Coba kita refresh halamannya
Hehe, halaman index kita berisi navbar, tujuan navbarnya dipisahkan adalah agar maintenance lebih mudah jika ada perubahan link pada navbar agar hanya perlu merubah link yang ada pada navbar.blade.php
Lalu saya lakukan perubahan untuk menyesuaikan kebutan pada menu di navbar, anda juga dapat melakukan kustomisasi sesuai keinginan kalian
2. Routing Dasar (Cara kurang dianjurkan)
Selanjutnya mari kita melakukan routing ke masing masing halaman, pada navbar saya yang baru saya hanya membuat 2 buah link, pertama adalah beranda dan yang kedua adalah daftar barang terjual
Tombol keluar nantinya akan kita gunakan tapi untuk sekarang kita belum menggunakannya, dan text Nama user akan berisikan user siapa yang melakukan login
Saya akan membuat halaman baru dengan nama barang_terjual.blade.php didalam folder pages, yang isinya sama seperti index.blade.php
Untuk melakukan routing kalian dapat mengakses folder routes -> web.php dan tambahlan routes seperti berikut:
Dan pada navbar di file navbar.blade.php kita bisa tambahkan link url pada tag a href seperti gambar berikut :
Dan coba kita akese link pada navigation bar
Dan linknya pun berhasil, tapi saya akan menunjukkan cara yang seharusnya dilakukan, bukan cara seperti diatas
3. Routing yang dianjurkan
Pertama kita buka terminal dan kita akan membuat controller menggunakan command php artisan make:controller nama_controller
Contohnya seperti ini :
php artisan make:controller BarangController
Nah sampai disini terdapat kelebihan Laravel yang lainnya yaitu Laravel dapat membuat method function langsung didalam class controller yang kita buat dengan menambahkan kode –resource
Seperti berikut :
php artisan make:controller BarangController –resource
Jika sudah seperti gambar diatas, berarti controller dengan nama BarangController telah berhasil kita buat. File controller ini dapat dilihat pada folder app->Http->Controller->BarangController.php
Nah tambahan kode –resource tadi menghasilkan function yang sudah siap digunakan didalam class BarangController.php, tapi kita tidak akan menyinggungnya sangat dalam ditahap ini, kita hanya menggunakan satu function yaitu function index terlebih dahulu. Tambahkan kode return view(‘nama folder.nama blade file’)
Jika sudah kita bisa Kembali ke halaman routes->web.php dan rubah routes yang sebelumnya seperti ini :
Ubah menjadi seperti ini :
Kode diatas dapat diartikan sebagai :
a. rute dengan method get dengan url/beranda-yo arahkan menggunakan controller bernama BarangController menggunakan method index yang akses linknya beranda
b. rute dengan method get dengan url/beranda-yo arahkan menggunakan controller bernama BarangController menggunakan method index yang akses linknya daftar-barang
kok kok kok, dimana dapet beranda?, dimana dapat daftar barang?
Nah sekarang kita ke navbar.blade.php untuk memperbaiki tag a href yang sebelumnya. Rubah menjadi seperti ini :
Jadi tujuannya kalian bisa mengganti url dengan nama ‘beranda-yo’ atau apapun tanpa harus merubah tag a href dari navbar.blade.php karena tag tersebut melakukan akses dari name yang diberikan pada routes yang dibuat
Yeee untuk routing dan controller dasar cukup sampai disini ya penjelasannya. Semoga cukup jelas karena bahasanya sepertinya agak berputar putar, terimakasi kasih telah membaca 😊