Belajar Laravel (Chapter 16 | Tutorial URL Generation)
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
<?phpnamespace 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/1Route::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