Belajar Laravel (Chapter 16 | Tutorial URL Generation)

Tobi Ahmad
dotlocal
Published in
3 min readApr 19, 2020

Laravel menyediakan helper untuk generate URL pada web aplikasi kita. Kita bisa menggunakan fitur ini pada view blade template, API response, dan membuat URL untuk keperluan redirect ke halaman lain.

Penggunaanya misalkan pada halaman Login terdapat beberapa url :

  • URL forgot password
  • URL register
  • URL kembali ke beranda

Kita bisa buat URL tersebut dengan mudah menggunakan helper URL pada Laravel, seperti:

  • Generate URL dari value string
  • Generate URL dari name routes
  • Generate URL dari Controller action

Scope of This Chapter

Pada tutorial ini kita akan membahas tentang helper URL pada Laravel.

Dasar URL

Helper url() akan generate URL dari host ketika user melakukan request, kita juga bisa mendapatkan informasi pada URL yang sedang diakses dan URL sebelumnya, berikut penggunaannya:

Step 1 — Buat Controller

Buat controller UrlController dengan perintah Artisan

php artisan make:controller UrlController

Kemudian edit file controller

// Edit file app/Http/Controllers/UrlController.php
<?php
namespace App\Http\Controllers;use Illuminate\Http\Request;class UrlController extends Controller
{
public function index()
{
$post_id = 10;
$basic_url = url("/posts/{$post_id}");
echo 'Basic url : '.$basic_url;
echo '<br>';
// URL saat ini tanpa query string
$current = url()->current();
echo 'Current url : '.$current;
echo '<br>';
// URL saat ini dengan query string
$full = url()->full();
echo 'Full url : '.$full;
echo '<br>';
// Full URL pada request sebelumnya
$previous = url()->previous();
echo 'Previous url : '.$previous;
echo '<br>';
exit();
}
}

Step 2 — Tambah Route

// edit file routes/web.phpRoute::get('/basic-url','UrlController@index');

Step 3 — Buka route pada browser

Jalankan perintah php artisan serve pada terminal dan akses URL http://localhost:8000/basic-url?q=makan pada browser:

Generate URL dari Nama Routes

Pada chapter sebelumnya kita telah belajar penamaan suatu routes, kita juga bisa membuat URL dari nama route. Kita bisa menggunakan helper route() untuk generate URL dari nama route.

Berikut penggunaanya:

Step 1 — Buat Controller

Buat controller UrlController dengan perintah Artisan

php artisan make:controller UrlController

Kemudian edit file controller

// Edit file app/Http/Controllers/UrlController.php<?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;class UrlController extends Controller
{
public function route()
{
$route = route('post.show', ['post' => 1]);
echo 'Route : '.$route;
exit();
}
}

Step 2 — Tambah Route

// edit file routes/web.php
Route::get('/post/{post}', function () {
//
})->name('post.show');
// menghasilkan URL = /post/1
Route::get('/route-url','UrlController@route');

Step 3 — Buka route pada browser

Jalankan perintah php artisan serve pada terminal dan akses URL http://localhost:8000/route-url pada browser :

Helper route bisa untuk generate URL pada route yang mempunyai banyak parameters

// misalkan ada route dengan parameter post dan commentRoute::get(‘/post/{post}/comment/{comment}’, function () {
//
})->name(‘comment.show’);
// masukan parameter post dan comment$route = route(‘comment.show’, [‘post’ => 1, ‘comment’ => 3]);echo $route;
// $route = http://localhost:8000/post/1/comment/3

Actions URL

Function action() bisa generate URL dengan parameter controller action.

Berikut penggunaanya, kita bisa memanfaatkan UrlConttroller yang sebelumnya sudah dibuat:

Step 1— Tambah Route

// edit file routes/web.php
use App\Http\Controllers\UrlController;
Route::get('/route-url','UrlController@route');Route::get('/action-url', function() {
$url = action('UrlController@route');
echo 'basic action : '.$url;
echo '<br>';
$url = action([UrlController::class, 'route']);
echo 'array sintax : '.$url;
echo '<br>';
});

Step 2— Buka route pada browser

Jalankan perintah php artisan serve pada terminal dan akses URL http://localhost:8000/action-url pada browser :

Next Chapter

HTTP Session : https://medium.com/dotlocal/belajar-laravel-chapter-17-tutorial-http-session-185be1b52291

Support the Author

Jika suka dengan artikel ini, bisa support saya ditautan berikut ini https://karyakarsa.com/tobidsn :)

Cheers
Tobi Ahmad
Founder of Dot Local

--

--

Tobi Ahmad
dotlocal

Web Developer, Blogger, & Open source enthusiast.