ahmadajah03 Mon Oct 2020 2 years ago

Contoh Tutorial Bagaimana Membuat Shortener URL pada Laravel 8

Hari ini, saya ingin berbagi cara membuat short url di aplikasi laravel. terkadang kita perlu memperpendek string url dari pada url panjang. dalam tutorial ini saya akan menunjukkan kepada Anda langkah demi langkah cara membuat shorten url di laravel 8 tanpa paket apa pun. Anda bisa menulis fungsi script Anda sendiri untuk generator short link di laravel 6, laravel 7 dan laravel 8.

Jika Anda bekerja dengan SMS atau tempat berbagi dengan karakter terbatas dan pada saat itu jika Anda perlu membagikan url atau tautan apa pun, Anda harus membuat url pemendek. Dalam proyek Anda ini membutuhkan banyak waktu maka Anda harus mengimplementasikan modul yang dapat membantu menghasilkan pemendek url dengan domain situs web Anda.

Anda hanya perlu mengikuti langkah demi langkah tutorial ini, Anda akan mendapatkan modul yang sangat sederhana untuk menghasilkan short link di laravel. Saya juga akan memberikan Anda download gratis seluruh script.

Langkah 1: Buat Tabel

jadi kita harus membuat migrasi untuk tabel "short_links" menggunakan perintah Laravel php artisan, jadi jalankan perintah di bawah ini:

php artisan make:migration create_short_links_table

Setelah perintah ini Anda akan menemukan satu file di jalur berikut "database/migrations" dan Anda harus meletakkan kode di bawah ini di file migrasi Anda untuk membuat tabel short_links.

<?php
  
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
   
class CreateShortLinksTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('short_links', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('code');
            $table->string('link');
            $table->timestamps();
        });
    }
   
    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('short_links');
    }
}

Sekarang Anda harus menjalankan migrasi ini dengan mengikuti perintah:

php artisan migrate

Langkah 2: Buat Model

Pada langkah ini, sekarang kita harus membuat model baru sebagai ShortLink. Jadi jalankan perintah di bawah dan buat model baru. jalankan perintah di bawah ini:

php artisan make:model ShortLink

app/ShortLink.php

<?php
   
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
   
class ShortLink extends Model
{
use HasFactory;
      
/**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'code', 'link'
    ];
}

Langkah 3: Buat Route

Pada langkah ini kita perlu membuat route untuk file layout dan satu lagi untuk menyimpan data. jadi buka file routes/web.php Anda dan tambahkan route berikut.

routes/web.php

use App\Http\Controllers\ShortLinkController;
Route::get('generate-shorten-link', [ShortLinkController::class, 'index']);
Route::post('generate-shorten-link', [ShortLinkController::class,'store'])->name('generate.shorten.link.post');
   
Route::get('{code}', [ShortLinkController::class,'shortenLink'])->name('shorten.link');

Langkah 4: Buat Controller

Pada titik ini, sekarang kita harus membuat controller baru sebagai ShortLinkController. pengontrol ini akan mengelola layout  dan menyimpan data ke database, jadi letakkan konten di bawah ini di file pengontrol:

app/Http/Controllers/ShortLinkController.php

<?php
  

namespace App\Http\Controllers;
   

use Illuminate\Http\Request;
use App\ShortLink;


class ShortLinkController extends Controller
{
  /**
   * Display a listing of the resource.
   *
   * @return \Illuminate\Http\Response
   */
  public function index()
  {
      $shortLinks = ShortLink::latest()->get();
   

      return view('shortenLink', compact('shortLinks'));
  }
   
  /**
   * Display a listing of the resource.
   *
   * @return \Illuminate\Http\Response
   */
  public function store(Request $request)
  {
        $request->validate([

           'link' => 'required|url'

      ]);
   

      $input['link'] = $request->link;
      $input['code'] = str_random(6);
   

        ShortLink::create($input);


      return redirect('generate-shorten-link')
           ->with('success', 'Shorten Link Generated Successfully!');
  }
   

  /**
   * Display a listing of the resource.
   *
   * @return \Illuminate\Http\Response
   */
  public function shortenLink($code)
  {
      $find = ShortLink::where('code', $code)->first();
   

      return redirect($find->link);
  }
}

 

Langkah 6: Buat View

Pada langkah terakhir, mari buat shortenLink.blade.php (resources / views / shortenLink.blade.php) untuk layout dan kita akan menulis kode desain di sini dan meletakkan kode berikut:

resources/ views/shortenLink.blade.php

<!DOCTYPE html>
<html>
<head>
  <title>How to create url shortener using Laravel? - Medikre.com</title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.3.1/css/bootstrap.min.css" />
</head>
<body>
   
<div class="container">
  <h1>How to create url shortener using Laravel? - Medikre.com</h1>
   
    <div class="card">
      <div class="card-header">
        <form method="POST" action="{{ route('generate.shorten.link.post') }}">
            @csrf
            <div class="input-group mb-3">
              <input type="text" name="link" class="form-control" placeholder="Enter URL" aria-label="Recipient's username" aria-describedby="basic-addon2">
              <div class="input-group-append">
                <button class="btn btn-success" type="submit">Generate Shorten Link</button>
              </div>
            </div>
        </form>
      </div>
      <div class="card-body">
   
            @if (Session::has('success'))
                <div class="alert alert-success">
                    <p>{{ Session::get('success') }}</p>
                </div>
            @endif
   
            <table class="table table-bordered table-sm">
                <thead>
                    <tr>
                        <th>ID</th>
                        <th>Short Link</th>
                        <th>Link</th>
                    </tr>
                </thead>
                <tbody>
                    @foreach($shortLinks as $row)
                        <tr>
                            <td>{{ $row->id }}</td>
                            <td><a href="{{ route('shorten.link', $row->code) }}" target="_blank">{{ route('shorten.link', $row->code) }}</a></td>
                            <td>{{ $row->link }}</td>
                        </tr>
                    @endforeach
                </tbody>
            </table>
      </div>
    </div>
   
</div>
    
</body>
</html>

Sekarang kita siap untuk menjalankan contoh kita jadi jalankan perintah di bawah untuk quick run:

php artisan serve

Sekarang Anda dapat membuka url bawah di browser Anda:

http://localhost:8000/generate-shorten-link

Anda dapat mengunduh seluruh kode dari sini: Download Code From Github

Saya harap ini dapat membantu Anda ...

create shorterner url laravel 8