andriajah Sat May 2020 1 year ago

Bagaimana Cara Membuat Shortener URL Menggunakan Laravel?

Hari ini, saya ingin membagikan kepada Anda cara membuat short url di aplikasi laravel. terkadang kita perlu shorten url alih-alih url panjang. dalam tutorial ini saya akan menunjukkan kepada Anda langkah demi langkah cara membuat url di laravel 6 tanpa paket apa pun. Anda dapat menulis fungsi skrip Anda sendiri untuk tautan pendek generator di laravel.

Jika Anda bekerja dengan SMS atau berbagi dengan karakter terbatas dan pada saat itu jika Anda perlu membagikan url atau tautan apa pun maka Anda harus membuat url pemendek. Dalam proyek Anda itu perlu berkali-kali maka Anda harus menerapkan 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 tautan pendek di laravel 6. saya juga akan memberi Anda unduhan seluruh skrip gratis.

Step 1: Install Laravel 6/7

Pada langkah ini, jika Anda belum menginstal aplikasi 6 laravel maka kita harus mendapatkan aplikasi laravel 6 yang baru. Jadi jalankan perintah di bawah ini dan dapatkan aplikasi laravel 6 yang bersih dan baru.

composer create-project --prefer-dist laravel/laravel blog

Step 2: Create Table

kita akan membuat dari awal aplikasi untuk membuat tautan pendek. jadi kita harus membuat migrasi untuk tabel "short_links" menggunakan perintah php artisan Laravel 6, jadi pertama 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

Step 3: Create 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
   
namespace App;
   
use Illuminate\Database\Eloquent\Model;
   
class ShortLink extends Model
{
    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'code', 'link'
    ];
}

Step 4: Create Route

Dalam langkah ini kita perlu membuat route untuk file tata letak dan satu lagi untuk menyimpan data. jadi buka file route/web.php Anda dan tambahkan route berikut.

routes/web.php

Route::get('generate-shorten-link', 'ShortLinkController@index');
Route::post('generate-shorten-link', 'ShortLinkController@store')->name('generate.shorten.link.post');
Route::get('{code}', 'ShortLinkController@shortenLink')->name('shorten.link');

Step 5: Create Controller

Pada titik ini, sekarang kita harus membuat controller baru sebagai ShortLinkController. controller ini akan mengelola tata letak dan menyimpan data ke basis data, jadi letakkan konten di bawah ini dalam file controller:

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);
    }
}

Step 6: Create View

Pada langkah Terakhir, mari kita buat shortenLink.blade.php (resources/views/shortenLink.blade.php) untuk tata letak dan kami akan menulis kode desain di sini dan memasukkan 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 ini untuk menjalankan cepat:

php artisan serve

Sekarang Anda dapat membuka url di bawah ini di browser Anda:

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

Saya harap ini dapat membantu Anda ...

laravel short url