Route Laravel

Route::group(['middleware' => ['web']], function(){ Route::resource('blog', 'BlogController'); }); Selamat malam, mohon bantuannya. penjelasan dari sintak di atas? terimakasih
avatar ediubaedillah

@ediubaedillah

5 Kontribusi 0 Poin


Jawaban

Route::group(['middleware' => ['web']], function(){ // baris 1
  Route::resource('blog', 'BlogController'); // baris 2
}); // baris 3
1. Baris 1 kita melakukan group pada route. itu saja. gunanya apa? salah satunya adalah untuk menggunakan middleware. middleware berfungsi untuk menyaring/menfilter (tergantung middleware apa yang digunakan, di dalam laravel masing2 middleware punya fungsi tersendiri) request. kalau di laravel 5.2 route tidak perlu ditambah middleware 'web' lagi karena middleware tersebut dipanggil otomatis. beda mungkin untuk laravel versi dibawahnya (5.1, 5.0, dst) kita harus menambahkan kode ['middleware' => ['web']. agan bisa lihat middleware apa saja yang dipanggil oleh route agan dengan menulis perintah di terminal atau cmd:
php artisan route:list
mengapa kita memanggil middlewarenya di group? bukan di routenya?. kedua2nya bisa dilakukan tergantung kebutuhan
// cara pemanggilan middleware langsung di route
Route::get('blog', '[email protected]')->middleware(['auth']);

// cara pemanggilan middleware melalui group
Route::group(['middleware'=>'auth'], function(){
   Route::get('blog', '[email protected]');
});
kedua kode diatas sama saja. lantas kalau sama apa yang membedakannya? Anggap route itu sama dengan url, bayangkan agan punya 100 route. www.websaya.com/blog, www.websaya.com/kontak, www.websaya.com/profil, dsb. apa agan ingin membuat route seperti dibawah 100 kali?
// 1
Route::get('blog', '[email protected]')->middleware(['auth']);
// 2
Route::get('kontak', '[email protected]')->middleware(['auth']);
// 3
Route::get('profil', '[email protected]')->middleware(['auth']);

....
// dan seterusnya sampai 100 kali
agan bisa lihat middleware(['auth']) kita ulang2 100 kali. mengapa kita tidak buatkan saja group agar kita tulisnya cuma 1 kali.
Route::group(['middleware'=>'auth'], function(){
   Route::get('blog', '[email protected]');
   Route::get('kontak', '[email protected]');
   Route::get('profil', '[email protected]');

  ...
  // dan seterusnya
});
2. Baris 2 kalau agan paham konsep CRUD maka agan akan mudah memahami ini. di dalam CRUD yang lengkap terdapat 7 url utama: - url untuk menampilkan semua post - url untuk menampilkan 1 post - url untuk menampilkan form pembuatan post - url untuk menerima post yang telah dibuat melalui form - url untuk menampilkan form pengeditan post - url untuk menerima post yang telah diedit melalui form - url untuk menghapus post. karena laravel tahu bahwa url tersebut adalah url yg umum digunakan dalam CRUD maka dibuatlah fasilitas resource controller. dengan mengetikkan perintah di terminal atau cmd:
php artisan make:controller BlogController --resource
maka laravel akan otomatis menyiapkan controller dan routenya untuk anda. bandingkan route berikut:
// ini 7 url yang kita singgung di atas mengenai CRUD yang dibuat dengan koding manual
Route::get('blog', '[email protected]');
Route::post('blog', '[email protected]');
Route::get('blog/create', '[email protected]');
Route::put('blog/{id}', '[email protected]');
Route::get('blog/{id}', '[email protected]');
Route::delete('blog/{id}', '[email protected]');
Route::get('blog/{id}/edit', '[email protected]');

// route CRUD versi laravel. route ini SETARA dengan 7 route di atas.
Route::resource('blog', 'BlogController');
3. Baris 3 ya jelas penutup kode. ada buka kurung, ada tutup kurung.
avatar onirusama

@onirusama

265 Kontribusi 183 Poin


Selamat pagi kak @onirusama. Saya mau nanya kak. Berarti kalo dilaravel 5.2 keatas gak usah menggunakan middleware lg ya kak?
avatar gugunguntoro

@gugunguntoro

250 Kontribusi 10 Poin


Login untuk gabung berdiskusi