Cara Membuat Route Parameters Framework Laravel


#Parameter yang Diperlukan

Terkadang Anda perlu menangkap segmen URI dalam route Anda. Misalnya, Anda mungkin perlu mengambil ID pengguna dari URL. Anda dapat melakukannya dengan mendefinisikan parameter route :

Route::get('user/{id}', function ($id) {
    return 'User '.$id;
});

Anda dapat menentukan parameter rute sebanyak yang diperlukan oleh rute Anda:

Route::get('posts/{post}/comments/{comment}', function ($postId, $commentId) {
    //
});

Parameter route selalu terbungkus dalam kurung dan harus terdiri dari karakter alfabet, dan mungkin tidak mengandung karakter. Alih-alih menggunakan karakter, gunakan garis bawah ( ). Parameter route dimasukkan ke dalam callback / pengendali rute berdasarkan urutannya - nama-nama argumen callback / controller tidak penting.{}--_

 

#Parameter opsional

Kadang-kadang Anda mungkin perlu menentukan parameter route , tetapi menjadikan keberadaan parameter route itu opsional. Anda dapat melakukannya dengan menempatkan ?tanda setelah nama parameter. Pastikan untuk memberikan variabel default route yang sesuai:

Route::get('user/{name?}', function ($name = null) {
    return $name;
});

Route::get('user/{name?}', function ($name = 'John') {
    return $name;
});

 

#Kendala Ekspresi Reguler

Anda dapat membatasi format parameter route Anda menggunakan wheremetode pada instance route . The where Metode menerima nama parameter dan ekspresi reguler mendefinisikan bagaimana parameter harus dibatasi:

Route::get('user/{name}', function ($name) {
    //
})->where('name', '[A-Za-z]+');

Route::get('user/{id}', function ($id) {
    //
})->where('id', '[0-9]+');

Route::get('user/{id}/{name}', function ($id, $name) {
    //
})->where(['id' => '[0-9]+', 'name' => '[a-z]+']);

 

Kendala Global

Jika Anda ingin parameter route selalu dibatasi oleh ekspresi reguler yang diberikan, Anda dapat menggunakan pattern metode ini. Anda harus mendefinisikan pola-pola ini dalam boot metode Anda RouteServiceProvider:

/**
 * Define your route model bindings, pattern filters, etc.
 *
 * @return void
 */
public function boot()
{
    Route::pattern('id', '[0-9]+');

    parent::boot();
}

Setelah pola ditetapkan, pola tersebut secara otomatis diterapkan ke semua rute menggunakan nama parameter itu:

Route::get('user/{id}', function ($id) {
    // Only executed if {id} is numeric...
});

 

Garis miring yang dikodekan ke depan

Komponen routing Laravel memungkinkan semua karakter kecuali /. Anda harus secara eksplisit mengizinkan /untuk menjadi bagian dari pengganti Anda menggunakan where kondisi ekspresi reguler:

Route::get('search/{search}', function ($search) {
    return $search;
})->where('search', '.*');
 

Garis miring ke depan yang dikodekan hanya didukung dalam segmen rute terakhir.

Tags

laravel  tutorial laravel  belajar laravel  

Artikel Menarik Lainnya:

Rekomendasi Artikel


Cara Menggunakan Variabel [PHP] Cara Membuat Session di PHPMembuat Infinite Scroll Dengan PHP, MySQL, Jquery, AjaxCara Mengirim Email dengan PHP di HostingCara Redirect HTTP ke HTTPS Pada Website

Terbaru dari framework Laravel


Search


Top Stories


  1. Membuat Perulangan Segitiga Bintang Dengan PHP

    on 2018-01-12

  2. Membatasi Jumlah Karakter dengan PHP

    on 2018-01-23

  3. Kenapa Telinga Gatal dan Berair

    on 2018-04-13

  4. Membuat Tanggal dan Zona Waktu Sederhana dengan PHP

    Admin on 2017-11-26

  5. Membuat Paragraf Otomatis dengan Script PHP

    on 2018-01-26

Other Post


Top Videos


  1. Founder SB1M dan Pemilik Distro BLOOP ini BANGKIT dari BANGKRUT 16x dan HUTANG 11M | Christina Lie

    joesep on 2019-06-04

  2. vivo Z1 Pro VS OPPO A9 2020 | Duel HP 3 Jutaan Terbaik 2019!

    joesep on 2019-09-26

  3. FILM Horor Terbaru "SABRINA THE DOLL 2" Full Movie 2018

    Andri03 on 2018-08-01

  4. Sandiaga Uno Resmi Mundur dari Ketua Tim Pemenangan Partai Gerindra

    joesep on 2018-07-31

  5. Aplikasi Kasir Point of Sale Restoran / Kafe Berbasis WEB

    joesep on 2018-08-15

close