Routing dan controller merupakan dua komponen penting yang perlu dipahami ketika mulai membangun aplikasi menggunakan Laravel. Routing menentukan bagaimana aplikasi merespons permintaan berdasarkan URL dan metode HTTP, sedangkan controller menjadi tempat untuk mengorganisasi logika yang menangani permintaan tersebut.
Keduanya bekerja bersama untuk menghubungkan pengguna dengan fitur aplikasi. Misalnya, ketika seseorang membuka halaman daftar artikel, Laravel akan mencocokkan permintaan dengan route yang sesuai. Route tersebut kemudian dapat memanggil controller untuk mengambil atau menyiapkan data sebelum mengirimkan respons kepada pengguna.
Bagi pemula, memahami routing dan controller akan membantu kamu menulis kode yang lebih terstruktur, mudah dikembangkan, dan lebih mudah dirawat. Konsep ini juga menjadi fondasi sebelum mempelajari Blade, database, Eloquent ORM, autentikasi, dan fitur CRUD.
Dalam tutorial ini, kita akan membahas cara menggunakan routing dan controller Laravel dari dasar hingga membuat contoh aplikasi sederhana. Kamu akan mempelajari route dasar, parameter URL, named route, pembuatan controller, pengiriman data ke view, resource controller, hingga cara mengatasi kesalahan yang umum terjadi.
Contoh kode menggunakan pola Laravel modern. Nama file, konfigurasi, atau beberapa detail implementasi dapat berbeda sesuai versi proyek yang kamu gunakan.
Daftar Isi
- Pengertian Routing Laravel
- Pengertian Controller Laravel
- Hubungan Routing dan Controller
- Mengenal File Route Laravel
- Cara Membuat Route Dasar
- Mengenal HTTP Method
- Menggunakan Parameter pada Route
- Memahami Named Route
- Cara Membuat Controller
- Menghubungkan Route dengan Controller
- Mengirim Data dari Controller ke View
- Menggunakan Resource Controller
- Contoh Proyek Sederhana
- Kesalahan Umum Routing dan Controller
- Tips Menulis Kode Laravel yang Terstruktur
- FAQ Routing dan Controller Laravel
- Kesimpulan
1. Pengertian Routing Laravel
Routing adalah mekanisme yang menentukan bagaimana aplikasi menangani permintaan berdasarkan alamat URL dan metode HTTP yang digunakan.
Ketika pengguna membuka sebuah halaman, browser mengirimkan permintaan ke server. Laravel kemudian mencari route yang cocok untuk menangani permintaan tersebut.
Sebagai contoh, aplikasi memiliki beberapa halaman:
/untuk halaman utama./artikeluntuk daftar artikel./tentanguntuk halaman informasi./kontakuntuk halaman kontak.
Setiap URL dapat dihubungkan dengan respons tertentu menggunakan routing.
Pada Laravel, definisi route web biasanya ditulis di file routes/web.php.
Contoh route paling sederhana:
<?php
use Illuminate\Support\Facades\Route;
Route::get('/halo', function () {
return 'Halo, Laravel!';
});
Jika server pengembangan berjalan di http://127.0.0.1:8000, buka alamat berikut:
http://127.0.0.1:8000/halo
Browser akan menampilkan teks Halo, Laravel!.
Pada contoh tersebut, Route::get() digunakan untuk mendaftarkan route yang merespons permintaan GET pada URL /halo. Fungsi anonim di dalamnya menentukan respons yang dikirimkan oleh aplikasi.
Route sederhana seperti ini cocok untuk latihan awal. Namun, ketika aplikasi semakin besar, logika yang terlalu banyak ditempatkan di file route akan membuat kode sulit dikelola. Di sinilah controller menjadi berguna.
2. Pengertian Controller Laravel
Controller adalah class PHP yang digunakan untuk mengelompokkan logika penanganan permintaan aplikasi.
Secara default, controller Laravel disimpan di direktori:
app/Http/Controllers
Misalnya, aplikasi memiliki fitur artikel. Kamu dapat membuat ArtikelController untuk menangani berbagai tindakan yang berkaitan dengan artikel, seperti menampilkan daftar, melihat detail, atau menampilkan formulir penambahan artikel.
Controller membantu memisahkan definisi URL dari logika aplikasi. Dengan pemisahan ini, file route tetap ringkas dan kode lebih mudah dipelihara.
Mengapa controller penting?
Bayangkan kamu memiliki aplikasi dengan puluhan halaman. Jika seluruh logika ditulis langsung di routes/web.php, file tersebut dapat menjadi sangat panjang.
Controller membantu mengelompokkan kode berdasarkan tanggung jawabnya. Misalnya:
ArtikelControllermenangani fitur artikel.ProdukControllermenangani fitur produk.KategoriControllermenangani fitur kategori.ProfileControllermenangani profil pengguna.
Pengelompokan ini bukan berarti setiap fitur harus selalu memiliki satu controller. Struktur akhirnya tetap perlu disesuaikan dengan kompleksitas aplikasi.
3. Hubungan Routing dan Controller
Routing dan controller memiliki fungsi berbeda, tetapi saling melengkapi.
Routing menentukan permintaan mana yang harus ditangani, sedangkan controller menjalankan logika yang dibutuhkan untuk menghasilkan respons.
Secara sederhana, alurnya seperti berikut:
- Pengguna membuka URL melalui browser.
- Laravel menerima permintaan HTTP.
- Laravel mencocokkan permintaan dengan route.
- Route memanggil metode controller jika route tersebut menggunakan controller.
- Controller menjalankan logika yang diperlukan.
- Controller mengembalikan respons, misalnya view HTML, redirect, atau data JSON.
- Laravel mengirimkan respons kepada browser atau klien.
Contohnya, ketika pengguna membuka /artikel, route dapat memanggil metode index() pada ArtikelController. Metode tersebut kemudian menyiapkan daftar artikel dan mengirimkannya ke halaman view.
Pemisahan tanggung jawab ini selaras dengan konsep MVC, yaitu Model, View, dan Controller.
Jika kamu belum memahami pola tersebut, baca artikel Memahami Konsep MVC dalam Pengembangan Web.
4. Mengenal File Route Laravel
Sebelum mulai menulis route, kenali beberapa file penting di dalam direktori routes.
A. routes/web.php
File ini digunakan untuk route antarmuka web. Pada konfigurasi standar Laravel, route di dalamnya mendapatkan middleware web yang mendukung fitur seperti session dan perlindungan CSRF.
Contoh penggunaannya adalah route halaman utama, halaman artikel, halaman profil, dan formulir berbasis browser.
use Illuminate\Support\Facades\Route;
Route::get('/', function () {
return 'Halaman Utama';
});
B. routes/api.php
Route API digunakan untuk membangun endpoint yang umumnya melayani permintaan dari aplikasi lain, aplikasi mobile, atau frontend yang berkomunikasi melalui HTTP.
Pada Laravel modern, file API dapat memerlukan proses instalasi API routing terlebih dahulu, bergantung pada versi dan konfigurasi proyek. Periksa dokumentasi versi Laravel yang kamu gunakan sebelum menganggap file tersebut sudah tersedia.
Dokumentasi resmi: https://laravel.com/docs/routing
C. Mengapa route perlu dipisahkan?
Pemisahan file route membuat konfigurasi aplikasi lebih mudah dibaca. Route web dan API dapat memiliki kebutuhan autentikasi, format respons, serta pola penggunaan yang berbeda.
Untuk latihan awal, fokuslah pada routes/web.php. Setelah memahami routing web, kamu dapat melanjutkan ke routing API.
5. Cara Membuat Route Dasar
Sekarang kita akan membuat beberapa route sederhana.
Buka file routes/web.php, kemudian tambahkan contoh berikut:
use Illuminate\Support\Facades\Route;
Route::get('/', function () {
return 'Halaman Beranda';
});
Route::get('/tentang', function () {
return 'Tentang Yeestack';
});
Route::get('/kontak', function () {
return 'Halaman Kontak';
});
Simpan file tersebut dan buka halaman berikut melalui browser:
http://127.0.0.1:8000/http://127.0.0.1:8000/tentanghttp://127.0.0.1:8000/kontak
Setiap URL akan menghasilkan respons sesuai definisi route.
Mengembalikan view
Selain teks biasa, route juga dapat mengembalikan view Blade.
Misalnya, jika kamu sudah memiliki file resources/views/tentang.blade.php, kamu dapat menulis:
Route::get('/tentang', function () {
return view('tentang');
});
Laravel akan mencari view tentang pada direktori view.
Untuk halaman statis yang sederhana, Laravel juga menyediakan metode Route::view():
Route::view('/bantuan', 'bantuan');
Kode tersebut menghubungkan URL /bantuan dengan view bantuan.
Ketika logika halaman mulai bertambah, pertimbangkan untuk memindahkan penanganan permintaan ke controller.
6. Mengenal HTTP Method pada Routing
HTTP method menjelaskan jenis operasi yang diminta klien kepada server. Laravel menyediakan beberapa metode routing untuk menangani permintaan tersebut.
A. GET
GET biasanya digunakan untuk mengambil atau menampilkan informasi.
Route::get('/artikel', function () {
return 'Daftar Artikel';
});
Route ini cocok untuk halaman daftar artikel yang dapat dibuka melalui browser.
B. POST
POST umumnya digunakan untuk mengirimkan data, misalnya ketika pengguna mengirim formulir penambahan artikel.
Route::post('/artikel', function () {
return 'Permintaan penambahan artikel diterima';
});
Contoh ini hanya menunjukkan bagaimana mendaftarkan route. Aplikasi sebenarnya tetap perlu memvalidasi dan memproses data yang dikirimkan.
C. PUT dan PATCH
PUT dan PATCH biasanya digunakan untuk memperbarui data. Perbedaan semantiknya bergantung pada apakah permintaan dimaksudkan mengganti representasi sumber daya secara keseluruhan atau melakukan perubahan sebagian.
Route::put('/artikel/{id}', function (string $id) {
return "Memperbarui artikel {$id}";
});
Route::patch('/artikel/{id}', function (string $id) {
return "Mengubah sebagian artikel {$id}";
});
D. DELETE
DELETE digunakan untuk meminta penghapusan suatu sumber daya.
Route::delete('/artikel/{id}', function (string $id) {
return "Permintaan penghapusan artikel {$id}";
});
Dalam aplikasi nyata, operasi penghapusan perlu memeriksa izin pengguna dan memastikan data yang dimaksud memang boleh dihapus.
E. Mengapa method harus sesuai?
Jangan menggunakan GET untuk semua operasi hanya karena lebih mudah ditulis.
Penggunaan HTTP method yang sesuai membantu memperjelas maksud permintaan dan membuat aplikasi lebih konsisten. Untuk formulir HTML, ingat bahwa browser secara langsung mendukung GET dan POST; Laravel menyediakan mekanisme seperti @method('PUT') atau @method('DELETE') untuk menyatakan method lain melalui formulir.
Formulir POST pada route web juga perlu menyertakan token CSRF menggunakan @csrf.
7. Menggunakan Parameter pada Route
Parameter route memungkinkan aplikasi menerima nilai yang berasal dari URL.
Contohnya, kamu ingin menampilkan artikel berdasarkan ID. Daripada membuat route terpisah untuk setiap artikel, gunakan parameter dinamis.
Route::get('/artikel/{id}', function (string $id) {
return "Detail artikel dengan ID {$id}";
});
Jika pengguna membuka /artikel/10, nilai 10 akan diterima melalui parameter $id.
Parameter wajib
Parameter {id} pada contoh sebelumnya bersifat wajib. URL /artikel/10 cocok dengan pola route, sedangkan /artikel tidak memenuhi pola tersebut.
Kamu dapat menggunakan beberapa parameter dalam satu route:
Route::get(
'/kategori/{kategori}/artikel/{id}',
function (string $kategori, string $id) {
return "Kategori: {$kategori}, Artikel: {$id}";
}
);
Parameter opsional
Jika parameter tidak selalu dibutuhkan, kamu dapat menambahkan tanda tanya dan memberikan nilai default yang sesuai.
Route::get('/pengguna/{nama?}', function (?string $nama = 'Tamu') {
return "Halo, {$nama}";
});
URL /pengguna akan menggunakan nama default Tamu, sedangkan /pengguna/Ani akan menggunakan Ani.
Membatasi nilai parameter
Parameter dapat dibatasi agar hanya menerima format tertentu.
Contohnya, route yang menerima ID numerik:
Route::get('/artikel/{id}', function (string $id) {
return "Artikel {$id}";
})->whereNumber('id');
Pembatasan ini membantu memastikan pola URL sesuai kebutuhan. Jika format parameter tidak cocok, route tidak akan cocok dengan permintaan tersebut.
Perlu diingat, pembatasan format URL bukan pengganti validasi data dan pemeriksaan otorisasi pada operasi aplikasi.
8. Memahami Named Route
Named route adalah route yang memiliki nama unik. Fitur ini mempermudah pembuatan URL dan redirect tanpa harus menuliskan alamat URL secara manual di banyak tempat.
Contoh:
Route::get('/artikel', function () {
return 'Daftar Artikel';
})->name('artikel.index');
Route tersebut memiliki nama artikel.index.
Untuk menghasilkan URL berdasarkan nama route, gunakan helper route():
$url = route('artikel.index');
Pada template Blade, kamu juga dapat menggunakan:
<a href="{{ route('artikel.index') }}">
Lihat Artikel
</a>
Mengapa named route berguna?
Misalnya, kamu mengubah URL daftar artikel dari /artikel menjadi /posts. Jika tautan di seluruh aplikasi menggunakan named route, kamu cukup memperbarui definisi route tanpa perlu mengganti setiap alamat yang ditulis secara langsung.
Nama route harus unik agar tidak menimbulkan konflik.
Named route dengan parameter
Named route juga dapat menerima parameter.
Route::get('/artikel/{id}', function (string $id) {
return "Artikel {$id}";
})->name('artikel.show');
URL dapat dihasilkan dengan:
$url = route('artikel.show', ['id' => 10]);
Pendekatan ini membantu menjaga konsistensi tautan antarhalaman.
9. Cara Membuat Controller Laravel
Sekarang kita akan memindahkan logika dari route ke controller.
Laravel menyediakan perintah Artisan untuk membuat controller. Pastikan terminal berada di direktori utama proyek, kemudian jalankan:
php artisan make:controller ArtikelController
Laravel akan membuat file controller di lokasi standar:
app/Http/Controllers/ArtikelController.php
Buka file tersebut dan periksa struktur class yang dihasilkan.
Selanjutnya, tambahkan metode index():
<?php
namespace App\Http\Controllers;
class ArtikelController extends Controller
{
public function index()
{
return 'Daftar Artikel Yeestack';
}
}
Metode index() merupakan metode publik yang dapat dipanggil oleh route.
Nama metode tidak wajib selalu index. Kamu dapat membuat metode lain sesuai tanggung jawabnya, seperti show(), create(), store(), edit(), update(), atau destroy().
Nama-nama tersebut umum digunakan untuk operasi sumber daya, tetapi penerapannya harus disesuaikan dengan kebutuhan aplikasi.
Controller dengan beberapa metode
Sebagai contoh, kamu dapat membuat beberapa metode untuk menangani halaman artikel:
<?php
namespace App\Http\Controllers;
class ArtikelController extends Controller
{
public function index()
{
return 'Daftar Artikel';
}
public function create()
{
return 'Form Tambah Artikel';
}
public function show(string $id)
{
return "Detail Artikel {$id}";
}
}
Dengan cara ini, logika yang berkaitan dengan artikel terkumpul dalam satu class.
10. Menghubungkan Route dengan Controller
Setelah controller tersedia, hubungkan route dengan metode yang sesuai.
Buka routes/web.php, kemudian tambahkan:
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\ArtikelController;
Route::get('/artikel', [ArtikelController::class, 'index'])
->name('artikel.index');
Route::get('/artikel/tambah', [ArtikelController::class, 'create'])
->name('artikel.create');
Route::get('/artikel/{id}', [ArtikelController::class, 'show'])
->whereNumber('id')
->name('artikel.show');
Sekarang, permintaan ke /artikel akan memanggil index(), /artikel/tambah akan memanggil create(), dan /artikel/10 akan memanggil show() dengan nilai ID yang sesuai.
Perhatikan bahwa route /artikel/tambah ditempatkan sebelum route /artikel/{id}. Karena parameter {id} dibatasi sebagai angka pada contoh ini, teks tambah tidak akan cocok dengan route detail. Meskipun begitu, menempatkan route yang lebih spesifik terlebih dahulu tetap merupakan kebiasaan yang baik untuk menghindari konflik pada pola route yang lebih kompleks.
Memeriksa route
Laravel menyediakan perintah untuk melihat daftar route yang terdaftar:
php artisan route:list
Perintah ini membantu memeriksa URL, HTTP method, nama route, dan tindakan yang terkait.
Jika route tidak muncul, periksa file yang digunakan, sintaks kode, serta konfigurasi routing proyek.
11. Mengirim Data dari Controller ke View
Pada aplikasi web, controller biasanya menyiapkan data yang kemudian ditampilkan melalui view.
Sebagai contoh, kita akan membuat halaman daftar artikel sederhana tanpa database terlebih dahulu.
Ubah metode index() pada ArtikelController:
public function index()
{
$artikels = [
[
'judul' => 'Belajar PHP dari Nol',
'kategori' => 'PHP',
],
[
'judul' => 'Memahami Konsep MVC',
'kategori' => 'Web Development',
],
[
'judul' => 'Tutorial Instalasi Laravel',
'kategori' => 'Laravel',
],
];
return view('artikel.index', compact('artikels'));
}
Kode tersebut menyiapkan array berisi data contoh dan mengirimkannya ke view menggunakan compact().
Selanjutnya, buat direktori artikel di dalam resources/views, lalu buat file index.blade.php.
Struktur direktori:
resources/
└── views/
└── artikel/
└── index.blade.php
Isi file index.blade.php:
<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Daftar Artikel</title>
</head>
<body>
<h1>Daftar Artikel Yeestack</h1>
<ul>
@foreach ($artikels as $artikel)
<li>
<strong>{{ $artikel['judul'] }}</strong>
<span>— {{ $artikel['kategori'] }}</span>
</li>
@endforeach
</ul>
</body>
</html>
Ketika pengguna membuka /artikel, controller akan menyiapkan data, lalu Blade menampilkan daftar artikel tersebut.
Simbol {{ }} pada Blade digunakan untuk menampilkan nilai dengan escaping HTML secara default. Ini merupakan kebiasaan yang lebih aman untuk teks biasa dibandingkan menampilkan HTML mentah tanpa alasan yang jelas.
Contoh ini menunjukkan alur dasar MVC: route menerima permintaan, controller menyiapkan data, dan view bertanggung jawab menampilkan data.
12. Menggunakan Resource Controller
Ketika aplikasi memiliki banyak operasi CRUD, kamu dapat mempertimbangkan resource controller.
CRUD adalah singkatan dari Create, Read, Update, dan Delete. Operasi tersebut digunakan untuk membuat, membaca, memperbarui, dan menghapus data.
Buat resource controller dengan perintah:
php artisan make:controller ArtikelController --resource
Jika kamu sudah memiliki ArtikelController, jangan menjalankan perintah ini secara sembarangan pada file yang sudah berisi kode. Periksa file terlebih dahulu agar perubahan tidak menghilangkan implementasi yang ada.
Resource controller biasanya menyediakan metode berikut:
index()— menampilkan daftar sumber daya.create()— menampilkan formulir penambahan.store()— memproses pembuatan data.show()— menampilkan detail.edit()— menampilkan formulir pengubahan.update()— memproses pembaruan.destroy()— memproses penghapusan.
Untuk menghubungkan seluruh operasi sumber daya, gunakan:
use App\Http\Controllers\ArtikelController;
use Illuminate\Support\Facades\Route;
Route::resource('artikel', ArtikelController::class);
Laravel akan mendaftarkan route sumber daya standar untuk berbagai operasi tersebut.
Kamu dapat melihat daftar route yang dihasilkan melalui:
php artisan route:list
Resource controller sangat membantu ketika membuat aplikasi pengelolaan artikel, produk, kategori, pelanggan, atau data lainnya.
Namun, mendaftarkan resource route tidak otomatis membuat seluruh fitur CRUD selesai. Kamu tetap perlu menulis logika controller, validasi, model, view, dan aturan akses yang sesuai.
13. Contoh Proyek Sederhana: Halaman Artikel
Mari kita rangkum konsep yang telah dipelajari melalui proyek kecil berupa halaman daftar artikel.
Tujuan latihan ini adalah membuat halaman yang dapat dibuka melalui URL /artikel, menyiapkan data di controller, dan menampilkannya melalui Blade.
Langkah 1: Buat controller
Jalankan:
php artisan make:controller ArtikelController
Langkah 2: Isi controller
Tambahkan metode index() yang mengirim array artikel ke view, seperti contoh sebelumnya.
Pastikan nama variabel yang dikirim dari controller sama dengan nama variabel yang digunakan di Blade.
Langkah 3: Buat route
Di routes/web.php, daftarkan:
use App\Http\Controllers\ArtikelController;
use Illuminate\Support\Facades\Route;
Route::get('/artikel', [ArtikelController::class, 'index'])
->name('artikel.index');
Langkah 4: Buat view
Buat resources/views/artikel/index.blade.php, lalu tampilkan data dengan @foreach.
Langkah 5: Jalankan aplikasi
Jalankan server pengembangan jika belum aktif:
php artisan serve
Kemudian buka alamat lokal /artikel.
Jika daftar artikel tampil, berarti route, controller, dan view telah terhubung dengan benar.
Apa yang bisa dikembangkan selanjutnya?
Setelah latihan berhasil, kamu dapat melanjutkannya dengan:
- Mengambil artikel dari database MySQL.
- Membuat model
Artikel. - Menggunakan Eloquent ORM untuk mengambil data.
- Membuat halaman detail berdasarkan ID atau slug.
- Menambahkan formulir pembuatan artikel.
- Memvalidasi input sebelum menyimpan data.
- Menambahkan autentikasi dan otorisasi untuk fitur pengelolaan.
Sebelum menambahkan database, pastikan kamu sudah memahami dasar SQL dan hubungan antara model, controller, dan view.
14. Kesalahan Umum Routing dan Controller
Pemula sering mengalami beberapa kesalahan ketika pertama kali menggunakan routing dan controller Laravel.
A. Controller tidak ditemukan
Jika muncul error yang menyatakan class controller tidak ditemukan, periksa namespace, nama class, dan import di file route.
Pastikan controller berada di direktori yang sesuai dan penulisan nama class sama dengan yang digunakan pada route.
B. Route menghasilkan halaman 404
Periksa apakah URL yang dibuka sesuai dengan definisi route. Periksa juga HTTP method yang digunakan dan parameter route.
Gunakan:
php artisan route:list
untuk melihat route yang terdaftar.
C. View tidak ditemukan
Jika Laravel tidak menemukan view, periksa nama file dan lokasinya.
Misalnya, view('artikel.index') mengacu pada file:
resources/views/artikel/index.blade.php
Nama direktori dan file harus sesuai dengan struktur view yang digunakan.
D. Variabel tidak tersedia di Blade
Pastikan controller mengirimkan variabel yang diperlukan oleh view.
Jika Blade menggunakan $artikels, controller harus mengirimkan data dengan nama tersebut. Perbedaan nama variabel dapat menyebabkan error.
E. Logika terlalu banyak di route
Route yang berisi banyak proses pengolahan data akan sulit dibaca dan dirawat.
Pindahkan logika yang berkaitan dengan fitur ke controller atau komponen lain yang sesuai. Namun, jangan pula menjadikan controller terlalu besar dengan mencampurkan semua tanggung jawab aplikasi ke satu class.
F. Menggunakan GET untuk mengubah data
Hindari menggunakan GET untuk operasi yang mengubah keadaan aplikasi, seperti membuat atau menghapus data. Gunakan HTTP method yang sesuai, validasi input, autentikasi, dan pemeriksaan izin.
Untuk formulir yang menggunakan POST, PUT, PATCH, atau DELETE pada route web, pastikan token CSRF disertakan sesuai mekanisme Laravel.
15. Tips Menulis Kode Laravel yang Terstruktur
Routing dan controller yang baik bukan hanya tentang membuat halaman berfungsi. Kode juga harus mudah dibaca, diuji, dan dikembangkan.
Pertama, gunakan nama route yang konsisten. Nama seperti artikel.index, artikel.show, dan artikel.create mempermudah navigasi serta pembuatan URL.
Kedua, hindari logika bisnis yang berlebihan di file route. Route sebaiknya berfokus pada pemetaan permintaan ke tindakan yang sesuai.
Ketiga, kelompokkan controller berdasarkan tanggung jawab. Controller untuk artikel sebaiknya tidak menjadi tempat seluruh logika pengguna, produk, dan laporan sekaligus.
Keempat, gunakan validasi sebelum memproses input. Data dari pengguna tidak boleh langsung dipercaya. Validasi membantu memastikan input memenuhi aturan aplikasi.
Kelima, pahami autentikasi dan otorisasi. Menyembunyikan tautan dari pengguna belum cukup untuk melindungi sebuah operasi. Server harus memastikan pengguna memiliki izin sebelum data diubah atau dihapus.
Keenam, gunakan dokumentasi resmi. Laravel memiliki fitur yang terus berkembang. Biasakan membaca dokumentasi sesuai versi proyek, khususnya ketika mengikuti tutorial dari versi yang lebih lama.
Dokumentasi routing: https://laravel.com/docs/routing
Dokumentasi controller: https://laravel.com/docs/controllers
16. FAQ Routing dan Controller Laravel
Apa perbedaan routing dan controller di Laravel?
Routing menentukan URL dan jenis permintaan yang ditangani aplikasi. Controller mengorganisasi logika untuk menangani permintaan tersebut dan menghasilkan respons.
Di mana file routing Laravel disimpan?
Route web biasanya didefinisikan di routes/web.php. Route API dapat berada di routes/api.php jika API routing telah tersedia dan diaktifkan pada proyek.
Di mana controller disimpan?
Secara default, controller disimpan di app/Http/Controllers. Kamu dapat membuatnya menggunakan perintah Artisan php artisan make:controller NamaController.
Apakah setiap route harus menggunakan controller?
Tidak. Route sederhana dapat langsung mengembalikan teks atau view melalui fungsi anonim. Namun, untuk fitur yang memiliki logika lebih kompleks, controller membantu menjaga struktur kode tetap rapi.
Apa fungsi php artisan route:list?
Perintah tersebut menampilkan daftar route yang terdaftar, termasuk informasi seperti HTTP method, URI, nama route, dan tindakan yang terkait. Ini sangat berguna untuk memeriksa konfigurasi routing.
Apa fungsi named route?
Named route memberikan nama unik pada route sehingga URL dan redirect dapat dibuat melalui helper seperti route(), tanpa perlu menulis alamat URL secara manual di setiap tempat.
Apa perbedaan controller biasa dan resource controller?
Controller biasa dapat berisi metode yang ditentukan sesuai kebutuhan. Resource controller mengikuti pola tindakan umum untuk pengelolaan sumber daya, seperti daftar, detail, pembuatan, pembaruan, dan penghapusan data.
Apakah routing dan controller termasuk konsep MVC?
Routing mengatur pemetaan permintaan, sedangkan controller merupakan salah satu komponen MVC. Controller biasanya bekerja bersama model dan view untuk memproses permintaan serta menghasilkan respons.
17. Kesimpulan
Routing dan controller merupakan fondasi penting dalam pengembangan aplikasi menggunakan Laravel. Routing menghubungkan URL dan HTTP method dengan tindakan aplikasi, sedangkan controller mengelompokkan logika untuk menangani permintaan tersebut.
Untuk memulai, pelajari route dasar, HTTP method, parameter URL, dan named route. Setelah itu, buat controller menggunakan Artisan, hubungkan dengan route, dan pelajari cara mengirim data ke view Blade.
Kamu juga dapat mempelajari resource controller untuk memahami pola CRUD yang umum digunakan dalam aplikasi web. Saat mulai mengembangkan fitur yang berhubungan dengan database, tambahkan model dan validasi secara bertahap agar struktur aplikasi tetap terorganisasi.
Jika kamu baru menyelesaikan instalasi Laravel, cobalah membuat halaman artikel sederhana seperti latihan dalam tutorial ini. Setelah berhasil, lanjutkan dengan Blade dan database agar kamu memahami alur data secara lebih lengkap.
Untuk mengikuti jalur belajar secara bertahap, baca kembali Roadmap Belajar Laravel dari Nol sampai Mahir. Dengan fondasi routing dan controller yang kuat, kamu akan lebih siap membangun aplikasi Laravel yang lebih kompleks.
Leave a comment