Cara Membuat RSS sederhana untuk blog Anda di laravel

SHARE :

Menghadapi suatu masalah, orang sering menemukan beberapa paket, menginstal dan menggunakannya meskipun masalahnya sederhana, dan paket-paket itu terlalu berlebihan.

Saya selalu lebih suka memecahkan masalah dengan "cara mudah" terlebih dahulu. Dan dalam hal ini, sangat sederhana.

Buat Routing

Di rute Anda:

Route::get('/feed', 'FeedController');

Buat File Controller

Dalam file FeedController.php:

<?php

namespace App\Http\Controllers;

use App\Post;
use Illuminate\Http\Request;

class FeedController extends Controller
{
    public function __invoke()
    {
        $posts = Post::all();

        $content = view('feed', compact('posts'));

        return response($content, 200)
            ->header('Content-Type', 'text/xml');
    }
}

Buat File view

Dalam tampilan feed.blade.php Anda, masukkan konten feed XML di:

<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>{{ url('/feed') }}</id>
    <link href="{{ url('/feed') }}"></link>
    <title><![CDATA[{{ config('app.name') }}]]></title>
    <description></description>
    <language></language>
    <updated>{{ $posts->first()->updated_at->format('D, d M Y H:i:s +0000') }}</updated>
    @foreach ($posts as $post)
    <entry>
        <title><![CDATA[{{ $post->title }}]]></title>
        <link rel="alternate" href="{{ $post->path() }}" />
        <id>{{ $post->path() }}</id>
        <author>
            <name> <![CDATA[{{ $post->user->name }}]]></name>
        </author>
        <summary type="html">
            <![CDATA[{!! parsedown($post->content) !!}]]>
        </summary>
        <category type="html">
            <![CDATA[]]>
        </category>
        <updated>{{ $post->updated_at->format('D, d M Y H:i:s +0000') }}</updated>
    </entry>
    @endforeach
</feed>

Ubah konten sesuai permintaan Anda. Dan nikmati hasilnya!

OOKINFO

Jasa pembuatan Aplikasi Mobile dan Web. Siap memberikan solusi digital untuk bisnis anda. Tugas Kuliah, Organisasi, Perusahaan, E-Commerce.