coding-wisely/laravel-slug-auto-generator

为您的Laravel模型自动生成唯一的slug

v2.0 2024-04-19 08:03 UTC

This package is auto-updated.

Last update: 2024-09-08 21:31:56 UTC


README

Laravel Logo

Laravel Slug Generator Package

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

本包托管了一个强大且灵活的特质,专为在Laravel应用程序中轻松生成slug而设计。无论您是在构建博客、电子商务平台还是任何其他Web应用程序,使用此强大解决方案管理SEO友好的URL都变得无缝。

关键特性

  • 自动生成slug:根据Eloquent模型中指定的字段自动生成slug,无需手动分配slug。

  • 唯一slug强制执行:确保生成的slug在数据库表中唯一,防止冲突并维护数据完整性。

  • SEO友好URL:通过根据用户友好的字段值生成slug,促进SEO友好URL的创建。

  • 可分组slug:支持在特定组内生成唯一的slug,允许在不同类别或部分之间具有不同的slug。这意味着您可以在不同的类别/任务/项目/帖子等中使用相同的slug。

  • 可定制配置:通过Laravel灵活的配置系统轻松配置用于生成slug的字段,轻松适应各种项目需求。

安装

您可以通过composer安装此包

composer require coding-wisely/laravel-slug-auto-generator

您可以使用php artisan vendor:publish发布配置文件,并从列表中选择CodingWisely包。

这是发布配置文件的内容

// config for CodingWisely/SlugGenerator
// replace it with your model column
return [
    'sluggable_field' => 'name',
    'groupable_field' => null, // 'category_id',
];

替换为您的字段。

使用方法

  1. 集成特质:简单地将SlugGenerator特质集成到您的Eloquent模型中,以解锁其强大的slug生成功能。

  2. 配置:通过修改位于您的config目录中的slug-auto-generator.php配置文件来自定义slug生成行为。

  3. 无缝集成:通过特质无缝集成到模型中,享受自动且唯一的slug生成,无需任何额外设置。

示例

use CodingWisely\SlugGenerator\SlugGenerator;
use Illuminate\Database\Eloquent\Model;

class YourModel extends Model
{
    use SlugGenerator;

    // Your model's attributes and methods...
    
    // override config file with 
    public static function getSluggableField(): string
    {
        return 'title'; // your own field on Model
    }
    // if you want to have unique slugs in different categories (groupable, such as project_id, team_id, category_id, etc.)
    public static function getGroupableField(): ?string
    {
        return 'category_id'; // your own field on Model
    }
}

测试

composer test 

变更日志

有关最近更改的更多信息,请参阅变更日志

贡献

有关详细信息,请参阅贡献指南

安全漏洞

有关如何报告安全漏洞,请参阅我们的安全策略

鸣谢

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件