devzkhalil/laravel-trovit-xml-feed

Laravel Trovit XML Feed Generator 是一个用于帮助您从 Laravel 应用程序的数据中轻松创建 Trovit XML 提供的软件包。

1.x-dev 2024-06-02 05:38 UTC

This package is not auto-updated.

Last update: 2024-09-23 04:47:27 UTC


README

Laravel Trovit XML Feed Generator 是一个用于帮助您从 Laravel 应用程序的数据中轻松创建 Trovit XML 提供的软件包。

什么是 Trovit?

Trovit 是一个流行的在线分类广告搜索引擎,用户可以搜索房地产、工作、汽车和其他各种类别的分类广告。它从全球成千上万个网站汇总列表,使用户能够方便地找到他们想要的东西。

安装

1.使用 Composer 安装软件包:

composer require devzkhalil/laravel-trovit-xml-feed:@dev

2.发布配置文件:

安装软件包后,使用以下命令发布配置文件

php artisan vendor:publish --provider="Devzkhalil\TrovitXmlFeed\TrovitXmlFeedServiceProvider"

这将创建一个 config/trovit.php 文件,您可以在其中自定义 Trovit XML 提供的字段和字段映射。

3.配置:

config/trovit.php 文件中,定义字段和字段映射。默认配置包括 Trovit 规定的必填字段以及其他可选字段。

return [
    /*
    |--------------------------------------------------------------------------
    | Trovit XML Feed Format Fields
    |--------------------------------------------------------------------------
    | Here is the list of fields obtained from
    | https://help.thribee.com/hc/en-us/articles/7920567396124-UK-Jobs-feed
    |
    |--------------------------------------------------------------------------
    | Mandatory Fields
    |--------------------------------------------------------------------------
    | id
    | url
    | title
    | content
    |
    | Other fields are optional.
    | You can comment out fields if you don't need them.
    |
    */
    'fields' => [
        'id',
        'title',
        'url',
        'content',
        'city',
        'city_area',
        'region',
        'postcode',
        'salary',
        'working_hours',
        'company',
        'experience',
        'requirements',
        'contract',
        'category',
        'date',
        'studies'
    ],

    'field_mapping' => [
        // Example mapping: 'model_column_name' => 'trovit_field'
        'id' => 'id',
        'post_url' => 'url',
        'title' => 'title',
        'content' => 'content',
        // Add more mappings as needed
    ]
];

基本用法

1.生成 XML 提供内容:要生成 Trovit XML 提供内容,从您的模型获取数据,并在 TrovitXmlFeed 类上调用 generate 方法。以下是一个使用 Post 模型的示例

use App\Models\Post;
use Devzkhalil\TrovitXmlFeed\Facades\TrovitXmlFeed;

public function generateTrovitFeed()
{
    $posts = Post::latest()->select(['id', 'title', 'post_url', 'content'])->take(100)->get();

    $feed = TrovitXmlFeed::generate($posts, 'trovit-feed');

    if ($feed['status']) {
        return response()->json(['message' => 'Feed generated successfully'], 200);
    } else {
        return response()->json(['message' => $feed['message']], 500);
    }
}

此代码段从 posts 表中获取最新的 100 条帖子,生成一个名为 trovit-feed.xml 的 XML 提供内容,并将其保存到 public 目录中。

2.访问生成的提供内容:

生成的 XML 提供内容将保存在您的 Laravel 应用程序的 public 目录中。您可以通过类似 http://your-domain.com/trovit-feed.xml 的 URL 访问它。

示例控制器方法

以下是一个生成 Trovit XML 提供内容的完整控制器方法的示例

namespace App\Http\Controllers;

use App\Models\Post;
use Illuminate\Http\JsonResponse;
use Devzkhalil\TrovitXmlFeed\Facades\TrovitXmlFeed;

class FeedController extends Controller
{
    /**
     * Generate Trovit XML Feed.
     *
     * @return JsonResponse
     */
    public function generateTrovitFeed(): JsonResponse
    {
        $posts = Post::latest()->select(['id', 'title', 'post_url', 'content'])->take(100)->get();

        $feed = TrovitXmlFeed::generate($posts, 'trovit-feed');

        if ($feed['status']) {
            return response()->json(['message' => 'Feed generated successfully'], 200);
        } else {
            return response()->json(['message' => $feed['message']], 500);
        }
    }
}

总结

使用 Laravel Trovit XML Feed Generator,您可以轻松创建和管理 Trovit 的 XML 提供内容,确保您的列表始终保持最新并可供访问。此软件包处理繁重的工作,让您能够专注于核心应用程序逻辑。