coding-wisely / laravel-slug-auto-generator
为您的Laravel模型自动生成唯一的slug
v2.0
2024-04-19 08:03 UTC
Requires
- php: ^8.2
- spatie/laravel-package-tools: ^1.14.0
Requires (Dev)
- larastan/larastan: ^2.0.1
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.8
- orchestra/testbench: ^8.8
- pestphp/pest: ^2.20
- pestphp/pest-plugin-arch: ^2.5
- pestphp/pest-plugin-laravel: ^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
README
Laravel Slug Generator Package
本包托管了一个强大且灵活的特质,专为在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', ];
替换为您的字段。
使用方法
-
集成特质:简单地将
SlugGenerator
特质集成到您的Eloquent模型中,以解锁其强大的slug生成功能。 -
配置:通过修改位于您的
config
目录中的slug-auto-generator.php
配置文件来自定义slug生成行为。 -
无缝集成:通过特质无缝集成到模型中,享受自动且唯一的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)。有关更多信息,请参阅许可证文件。