Laravel : Routing dan Controller — Pemula
Laravel hadir sebagai solusi cerdas dengan routing dan controller, mempermudahkan developer dalam mengembangkan aplikasi terbaiknya.
Artikel ini membahas tentang routing dan controller dengan tingkat basic. mungkin dengan artikel ini membantu bagi pemula terutama yang belum mengenal routing dan controller. oke .. selanjutnya langsung saja ke pembahasan.
Routing dan Controller merupakan bagian dari konsep MVC. kita tahu bahwa laravel menerapkan konsep MVC. dari penulis ketahui bahwa laravel sudah sejak awal menerapkan konsep MVC pada juni 2011. MVC atau Model — View — Controller merupakan konsep arsitektur yang memisahkan code terhadap ketiga komponen tersebut. hal ini salah satunya mempermudahkan pemeliharaan kode kedepannya. ketiga komponen tersebut saling bekerja sama dalam aktivitas request maupun response.
Routing dan controller saling bekerja sama dalam hal menampilkan halaman aplikasi.
Routing
Routing dapat menangani request yang masuk, routing akan mengecek url apakah sesuai dengan url yang dibuat oleh sistem. routing akan mencocokan url yang masuk serta memeriksa jenis request yang dilayani, setelah itu akan diteruskan oleh controller dan menampilkan view yang sesuai dengan url tersebut.
Laravel menangani hal itu. dalam mendeklarasikan routing dapat dilakukan dari tingkat basic hingga kompleks sesuai dengan kebutuhan. kamu bisa membaca dokumentasi pada laravel route disini.
Setelah kamu sudah menginstall laravel. kamu akan melihat banyak folder dan file disana. hal itu tentu memiliki fungsinya masing — masing.
Pada gambar diatas merupakan contoh struktur folder untuk membuat projek laravel. untuk membuat route. kamu bisa menemukan di folder routes, setelah itu buka file web.php
pada gambar diatas merupakan cara mendeklarasikan route secara sederhana. route dengan “ / ” merupakan route default yaitu home pada halaman aplikasi.
untuk membuat route kita perlu mengimport fasad. adanya fasad dapat mempersingkat dalam pembuatan routing.
use Illuminate\Support\Facades\Route; //import fasad
Dalam mendeklarasikan routing, laravel memiliki dua parameter yang pertama adalah url dan kedua adalah closure yang merupakan fungsi anonim, closure digunakan salah satunya untuk menampilkan halaman view.
Route::get('/login', function () {
return view('login'); //menampilkan halaman pada file login.blade.php
});
halaman yang ingin ditampilkan harus sesuai dengan nama file pada folder resource/views.
Routing dapat bekerja sama dengan controller. berikut contoh penggunaannya.
Route::get('/login', [LoginController::class, 'index']);
pada route jenis diatas merupakan sebuah routing yang menggunakan controller, untuk pembahasan selengkapnya akan dijelaskan pada pembahasan berikutnya.
Controller
Pada konsep arsitektur MVC, controller merupakan peran yang cukup penting, Controller seperti jembatan antara model dan view. controller menerima request yang masuk melalui url yang telah dicocokan, mengambil data dari model, tempat untuk memvalidasi , dan masih banyak lainnya. hasil dari aktivitas itu akan ditampilkan ke pengguna.
Controller merupakan sebuah class. didalam class terdapat fungsi-fungsi yang berisi logika serta keperluan untuk melakukan request dan response.
Didalam laravel, file controller dapat dibuat dengan cara manual maupun mengunakan fitur php artisan di terminal. berikut cara membuat controller menggunakan php artisan.
php artisan make:controller LoginController //contoh membuat file controller
secara default file controller yang kita buat akan diletakan pada App\Http\Controllers. LoginController sudah bisa digunakan untuk membuat logika serta melayani request yang masuk.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Http\RedirectResponse;
use App\Http\Controllers\Controller;
class LoginController extends Controller
{
public function index()
{
return view('login');
}
}
kita bisa melihat code diatas yang dapat menampilkan halaman login. terus.. bagaimana dengan routenya?? tenang,, jadi untuk route harus menerapkan controller didalamnya dan harus sesuai dengan nama method pada class LoginController yaitu ‘index’.
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\LoginController; // class harus diimport
//mendeklarasikan route dengan controller secara terpisah
Route::get('/login', [LoginController::class, 'index']);
setelah dideklarasikan dengan benar. route akan meneruskan ke LoginController dan mencari fungsi bernama index, fungsi tersebut akan menampilkan halaman berdsarkan nama file yang ada di folder views.
Routing dan controller saling berkerja sama. kita bisa melihat bahwa routing tanpa controller halaman juga akan tampil. tetapi bagaimana jika aplikasinya semakin kompleks. nah,, dengan itu kita menerapkan contoller akan lebih terstruktur dan kode mudah untuk diperlihara. kita dapat memisahkan contoller untuk login dan register atau dahsboard, setting dan sebagainya. dokumentasi laravel sudah memperjelas tetang routing dan controller ini, dengan itu mudah kita memanfaatkan untuk belajar lebih dalam.
mungkin itu saja pembahasan tentang routing dan controller dengan tingkat basic. terimah kasih telah membaca arikel ini, semoga membantu kamu dalam belajar laravel..