Days
Hours
Minutes
Seconds

Promo Grand Opening

15% OFF

Khusus Pelanggan Baru

Tutorial Laravel #41: Action URL Laravel

Tentu, ini artikel yang Anda minta:


 

 

Dalam pengembangan aplikasi web, URL (Uniform Resource Locator) adalah fondasi utama untuk navigasi. Laravel, dengan sistem peruteannya yang canggih, menyediakan cara yang sangat fleksibel dan kuat untuk mengelola URL, terutama dalam pembuatan tautan (links) dan formulir (forms) yang mengarah ke action di controller.

Dalam tutorial Laravel ke-41 ini, kita akan membahas metode-metode terbaik untuk membuat URL yang dinamis dan tahan perubahan, yang semuanya berpusat pada konsep Action URL.


 

1. Apa itu Action URL?

 

Action URL adalah URL yang secara langsung mengarah ke sebuah action (metode) di dalam sebuah controller. Dibandingkan dengan URL statis (/profile), Action URL adalah pendekatan yang lebih baik karena:

  • Tahan Perubahan: Jika Anda mengubah nama atau rute controller, Anda tidak perlu mengubah setiap tautan secara manual di aplikasi Anda. Laravel akan secara otomatis memperbarui URL yang dihasilkan.
  • Lebih Terstruktur: Ini secara eksplisit menghubungkan tampilan (view) dengan logika bisnis di controller, membuat kode lebih mudah dibaca dan dipelihara.
  • Dukungan Parameter: Memungkinkan Anda untuk meneruskan parameter yang diperlukan ke action controller dengan mudah.

 

2. Membuat Action URL dengan action() Helper

 

Laravel menyediakan helper action() yang sangat berguna untuk membuat URL yang mengarah ke action controller.

 

Sintaks Dasar

 

PHP

action([NamaController::class, 'namaMethod']);

 

Contoh Sederhana

 

Anggaplah Anda memiliki controller UserController dengan metode show:

PHP

// app/Http/Controllers/UserController.php

class UserController extends Controller
{
    public function show()
    {
        // ...
    }
}

Untuk membuat tautan yang mengarah ke action ini di view Blade, Anda bisa menggunakan:

HTML

<a href="{{ action([App\Http\Controllers\UserController::class, 'show']) }}">Lihat Profil</a>

 

Meneruskan Parameter

 

Jika action Anda menerima parameter, Anda bisa meneruskannya sebagai array kedua ke helper action().

PHP

// app/Http/Controllers/UserController.php
public function show($id)
{
    // ...
}

Dan di view Blade Anda:

HTML

<a href="{{ action([App\Http\Controllers\UserController::class, 'show'], ['id' => 123]) }}">Lihat Profil User 123</a>

Anda juga bisa meneruskan objek model Eloquent. Laravel akan secara otomatis mengekstrak kunci primernya (ID) dan menggunakannya sebagai parameter.

PHP

// Anggaplah $user adalah instance dari App\Models\User
<a href="{{ action([App\Http\Controllers\UserController::class, 'show'], $user) }}">Lihat Profil</a>

 

Membuat Rute Resource

 

Jika Anda menggunakan rute resource, Laravel juga akan menggenerasikan rute-rute yang dapat digunakan.

PHP

// routes/web.php
Route::resource('photos', PhotoController::class);

Untuk membuat tautan ke show action pada PhotoController, Anda bisa melakukannya seperti ini:

HTML

<a href="{{ action([App\Http\Controllers\PhotoController::class, 'show'], ['photo' => 1]) }}">Lihat Foto</a>

 

3. Membuat URL Formulir dengan action()

 

Sama seperti tautan, Action URL sangat berguna untuk atribut action pada tag <form>.

 

Contoh Formulir

 

HTML

<form method="POST" action="{{ action([App\Http\Controllers\UserController::class, 'update'], ['id' => $user->id]) }}">
    @csrf
    <button type="submit">Update Profil</button>
</form>

Dengan cara ini, formulir Anda akan selalu mengarah ke action update di UserController, bahkan jika Anda mengubah nama rute di routes/web.php.


 

4. Perbedaan dengan route() Helper

 

Selain action(), Laravel juga memiliki helper route() yang sangat populer. Keduanya memiliki fungsi yang mirip, tetapi digunakan dalam skenario yang sedikit berbeda:

Helper Fungsi Kapan Digunakan
route() Membuat URL berdasarkan nama rute. Saat Anda telah memberikan nama pada rute di routes/web.php (Route::get('/profile', '...')->name('profile');). Ini adalah cara paling umum dan direkomendasikan.
action() Membuat URL berdasarkan nama controller dan method-nya. Saat Anda tidak ingin bergantung pada nama rute yang mungkin berubah, atau untuk penggunaan internal yang sangat spesifik.

 

Contoh route():

 

PHP

// routes/web.php
Route::get('/users/{id}', [UserController::class, 'show'])->name('users.show');
HTML

<a href="{{ route('users.show', ['id' => 123]) }}">Lihat Profil User 123</a>

Metode route() umumnya lebih disukai karena memberikan lapisan abstraksi tambahan, yang memungkinkan Anda mengubah URL tanpa menyentuh controller atau view. Namun, action() tetap merupakan alat yang kuat untuk situasi di mana Anda ingin tautan Anda terikat erat dengan controller tertentu.


 

Kesimpulan

 

Menggunakan Action URL dan helper action() di Laravel adalah praktik terbaik untuk membuat tautan dan formulir yang dinamis, kuat, dan mudah dipelihara. Meskipun route() helper adalah pilihan yang paling sering direkomendasikan, pemahaman tentang action() memberikan Anda fleksibilitas dan pemahaman yang lebih dalam tentang bagaimana sistem perutean Laravel bekerja.

Wawasan Terbaru

Gemini_Generated_Image_wfw5uwwfw5uwwfw5
Mengenal Dunia Grafis: Dari Piksel Hingga Vektor, Kekuatan Visual di Era Digital
Gemini_Generated_Image_b6dimfb6dimfb6di
Mengenal Foundation: Kerangka Kerja Front-End Profesional untuk Web Responsif
Gemini_Generated_Image_sx3ztpsx3ztpsx3z
CSS
Mempercantik Website dengan CSS: Seniman di Balik Tampilan Web 🎨
Gemini_Generated_Image_e013qke013qke013
Mengenal HTML: Fondasi dari Setiap Halaman Website 🌐
Gemini_Generated_Image_ldki4nldki4nldki
Menyelami Dunia Coding: Seni Berbicara dengan Komputer
Gemini_Generated_Image_dpvliydpvliydpvl
Menguasai GIT: Fondasi Penting dalam Dunia Pengembangan Perangkat Lunak
Gemini_Generated_Image_sqcib9sqcib9sqci
Tutorial Python #12: Mengenal Jenis-jenis Operator dalam Python
Gemini_Generated_Image_o1bw3do1bw3do1bw
Memahami Tipe Data Dictionary dalam Python
Gemini_Generated_Image_ko4ixfko4ixfko4i
Mengenal Tipe Data Set dalam Python
Gemini_Generated_Image_1xop7m1xop7m1xop
Tuple dalam Python: Pengenalan dan Tutorial

Wawasan Serupa

Gemini_Generated_Image_mem6cgmem6cgmem6
Gemini_Generated_Image_ust09gust09gust0
Gemini_Generated_Image_d8a5kwd8a5kwd8a5
Gemini_Generated_Image_m9wyvsm9wyvsm9wy

Ceritakan Detail Proyekmu

Mulai dari 30K aja, solusi IT kamu langsung jalan tanpa drama.

Kata Mereka Tentang Solusi Coding

Dipercaya oleh lebih dari 200++ client untuk menyelesaikan proyeknya dengan total 250++ proyek dari berbagai jenis proyek